Skip to content

Commit abe2878

Browse files
committed
removeCache: refactor MetadataMixin
1 parent 5076dce commit abe2878

File tree

6 files changed

+106
-39
lines changed

6 files changed

+106
-39
lines changed

+nix/MetadataMixIn.m

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,32 +8,22 @@
88
alias
99
end
1010

11-
properties(Hidden)
12-
metadataCache
13-
end;
14-
1511
methods
16-
function obj = MetadataMixIn()
17-
obj.metadataCache = nix.CacheStruct();
18-
end
19-
2012
function metadata = open_metadata(obj)
21-
[obj.metadataCache, metadata] = nix.Utils.fetchObj(...
22-
obj.updatedAt, ...
13+
metadata = nix.Utils.fetchObj_(...
2314
strcat(obj.alias, '::openMetadataSection'), ...
24-
obj.nix_handle, obj.metadataCache, @nix.Section);
15+
obj.nix_handle, @nix.Section);
2516
end;
2617

2718
function set_metadata(obj, val)
2819
if (isempty(val))
29-
nix_mx(strcat(obj.alias, '::set_none_metadata'), obj.nix_handle, val);
20+
nix_mx(strcat(obj.alias, '::set_none_metadata'), ...
21+
obj.nix_handle, val);
3022
else
31-
obj.metadataCache = nix.Utils.add_entity(obj, val, 'nix.Section', ...
32-
strcat(obj.alias, '::set_metadata'), obj.metadataCache);
23+
nix.Utils.add_entity_(obj, val, 'nix.Section', ...
24+
strcat(obj.alias, '::set_metadata'));
3325
end;
34-
obj.metadataCache.lastUpdate = 0;
3526
end;
3627
end;
3728

3829
end
39-

tests/TestBlock.m

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -385,18 +385,32 @@
385385

386386
%% Test: Set metadata
387387
function [] = test_set_metadata ( varargin )
388-
f = nix.File(fullfile(pwd, 'tests', 'testRW.h5'), nix.FileMode.Overwrite);
389-
tmp = f.createSection('testSection1', 'nixSection');
390-
tmp = f.createSection('testSection2', 'nixSection');
388+
fileName = fullfile(pwd, 'tests', 'testRW.h5');
389+
secName1 = 'testSection1';
390+
secName2 = 'testSection2';
391+
f = nix.File(fileName, nix.FileMode.Overwrite);
392+
tmp = f.createSection(secName1, 'nixSection');
393+
tmp = f.createSection(secName2, 'nixSection');
391394
b = f.createBlock('testBlock', 'nixBlock');
392395

393396
assert(isempty(b.open_metadata));
397+
assert(isempty(f.blocks{1}.open_metadata));
398+
394399
b.set_metadata(f.sections{1});
395-
assert(strcmp(b.open_metadata.name, 'testSection1'));
400+
assert(strcmp(b.open_metadata.name, secName1));
401+
assert(strcmp(f.blocks{1}.open_metadata.name, secName1));
402+
396403
b.set_metadata(f.sections{2});
397-
assert(strcmp(b.open_metadata.name, 'testSection2'));
404+
assert(strcmp(b.open_metadata.name, secName2));
405+
assert(strcmp(f.blocks{1}.open_metadata.name, secName2));
398406
b.set_metadata('');
399407
assert(isempty(b.open_metadata));
408+
assert(isempty(f.blocks{1}.open_metadata));
409+
410+
b.set_metadata(f.sections{2});
411+
clear tmp b f;
412+
f = nix.File(fileName, nix.FileMode.ReadOnly);
413+
assert(strcmp(f.blocks{1}.open_metadata.name, secName2));
400414
end
401415

402416
function [] = test_open_metadata( varargin )

tests/TestDataArray.m

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,19 +60,35 @@
6060

6161
%% Test: Set metadata
6262
function [] = test_set_metadata ( varargin )
63-
f = nix.File(fullfile(pwd, 'tests', 'testRW.h5'), nix.FileMode.Overwrite);
64-
tmp = f.createSection('testSection1', 'nixSection');
65-
tmp = f.createSection('testSection2', 'nixSection');
63+
fileName = fullfile(pwd, 'tests', 'testRW.h5');
64+
secName1 = 'testSection1';
65+
secName2 = 'testSection2';
66+
f = nix.File(fileName, nix.FileMode.Overwrite);
67+
tmp = f.createSection(secName1, 'nixSection');
68+
tmp = f.createSection(secName2, 'nixSection');
69+
6670
b = f.createBlock('testBlock', 'nixBlock');
6771
da = b.create_data_array('testDataArray', 'nixDataArray', 'double', [1 2]);
6872

6973
assert(isempty(da.open_metadata));
74+
assert(isempty(f.blocks{1}.dataArrays{1}.open_metadata));
75+
7076
da.set_metadata(f.sections{1});
71-
assert(strcmp(da.open_metadata.name, 'testSection1'));
77+
assert(strcmp(da.open_metadata.name, secName1));
78+
assert(strcmp(f.blocks{1}.dataArrays{1}.open_metadata.name, secName1));
79+
7280
da.set_metadata(f.sections{2});
73-
assert(strcmp(da.open_metadata.name, 'testSection2'));
81+
assert(strcmp(da.open_metadata.name, secName2));
82+
assert(strcmp(f.blocks{1}.dataArrays{1}.open_metadata.name, secName2));
83+
7484
da.set_metadata('');
7585
assert(isempty(da.open_metadata));
86+
assert(isempty(f.blocks{1}.dataArrays{1}.open_metadata));
87+
88+
da.set_metadata(f.sections{2});
89+
clear tmp da b f;
90+
f = nix.File(fileName, nix.FileMode.ReadOnly);
91+
assert(strcmp(f.blocks{1}.dataArrays{1}.open_metadata.name, secName2));
7692
end
7793

7894
%% Test: Open metadata

tests/TestMultiTag.m

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -365,20 +365,36 @@
365365

366366
%% Test: Set metadata
367367
function [] = test_set_metadata ( varargin )
368-
f = nix.File(fullfile(pwd, 'tests', 'testRW.h5'), nix.FileMode.Overwrite);
369-
tmp = f.createSection('testSection1', 'nixSection');
370-
tmp = f.createSection('testSection2', 'nixSection');
368+
fileName = fullfile(pwd, 'tests', 'testRW.h5');
369+
secName1 = 'testSection1';
370+
secName2 = 'testSection2';
371+
f = nix.File(fileName, nix.FileMode.Overwrite);
372+
tmp = f.createSection(secName1, 'nixSection');
373+
tmp = f.createSection(secName2, 'nixSection');
374+
371375
b = f.createBlock('testBlock', 'nixBlock');
372376
tmp = b.create_data_array('testDataArray', 'nixDataArray', 'double', [1 2 3 4 5 6]);
373377
t = b.create_multi_tag('metadataTest', 'nixMultiTag', b.dataArrays{1});
374378

375379
assert(isempty(t.open_metadata));
380+
assert(isempty(f.blocks{1}.multiTags{1}.open_metadata));
381+
376382
t.set_metadata(f.sections{1});
377-
assert(strcmp(t.open_metadata.name, 'testSection1'));
383+
assert(strcmp(t.open_metadata.name, secName1));
384+
assert(strcmp(f.blocks{1}.multiTags{1}.open_metadata.name, secName1));
385+
378386
t.set_metadata(f.sections{2});
379-
assert(strcmp(t.open_metadata.name, 'testSection2'));
387+
assert(strcmp(t.open_metadata.name, secName2));
388+
assert(strcmp(f.blocks{1}.multiTags{1}.open_metadata.name, secName2));
389+
380390
t.set_metadata('');
381391
assert(isempty(t.open_metadata));
392+
assert(isempty(f.blocks{1}.multiTags{1}.open_metadata));
393+
394+
t.set_metadata(f.sections{2});
395+
clear tmp t b f;
396+
f = nix.File(fileName, nix.FileMode.ReadOnly);
397+
assert(strcmp(f.blocks{1}.multiTags{1}.open_metadata.name, secName2));
382398
end
383399

384400
%% Test: Open metadata

tests/TestSource.m

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,19 +57,34 @@
5757

5858
%% Test: Set metadata
5959
function [] = test_set_metadata ( varargin )
60-
f = nix.File(fullfile(pwd, 'tests', 'testRW.h5'), nix.FileMode.Overwrite);
60+
fileName = fullfile(pwd, 'tests', 'testRW.h5');
61+
secName1 = 'testSection1';
62+
secName2 = 'testSection2';
63+
f = nix.File(fileName, nix.FileMode.Overwrite);
6164
tmp = f.createSection('testSection1', 'nixSection');
6265
tmp = f.createSection('testSection2', 'nixSection');
6366
b = f.createBlock('testBlock', 'nixBlock');
6467
s = b.create_source('testSource', 'nixSource');
6568

6669
assert(isempty(s.open_metadata));
70+
assert(isempty(f.blocks{1}.sources{1}.open_metadata));
71+
6772
s.set_metadata(f.sections{1});
68-
assert(strcmp(s.open_metadata.name, 'testSection1'));
73+
assert(strcmp(s.open_metadata.name, secName1));
74+
assert(strcmp(f.blocks{1}.sources{1}.open_metadata.name, secName1));
75+
6976
s.set_metadata(f.sections{2});
70-
assert(strcmp(s.open_metadata.name, 'testSection2'));
77+
assert(strcmp(s.open_metadata.name, secName2));
78+
assert(strcmp(f.blocks{1}.sources{1}.open_metadata.name, secName2));
79+
7180
s.set_metadata('');
7281
assert(isempty(s.open_metadata));
82+
assert(isempty(f.blocks{1}.sources{1}.open_metadata));
83+
84+
s.set_metadata(f.sections{2});
85+
clear tmp b f;
86+
f = nix.File(fileName, nix.FileMode.ReadOnly);
87+
assert(strcmp(f.blocks{1}.sources{1}.open_metadata.name, secName2));
7388
end
7489

7590
%% Test: Open metadata

tests/TestTag.m

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -273,19 +273,35 @@
273273

274274
%% Test: Set metadata
275275
function [] = test_set_metadata ( varargin )
276-
f = nix.File(fullfile(pwd, 'tests', 'testRW.h5'), nix.FileMode.Overwrite);
277-
tmp = f.createSection('testSection1', 'nixSection');
278-
tmp = f.createSection('testSection2', 'nixSection');
276+
fileName = fullfile(pwd, 'tests', 'testRW.h5');
277+
secName1 = 'testSection1';
278+
secName2 = 'testSection2';
279+
f = nix.File(fileName, nix.FileMode.Overwrite);
280+
tmp = f.createSection(secName1, 'nixSection');
281+
tmp = f.createSection(secName2, 'nixSection');
282+
279283
b = f.createBlock('testBlock', 'nixBlock');
280284
t = b.create_tag('testTag', 'nixTag', [1, 2, 3, 4]);
281285

282286
assert(isempty(t.open_metadata));
287+
assert(isempty(f.blocks{1}.tags{1}.open_metadata));
288+
283289
t.set_metadata(f.sections{1});
284-
assert(strcmp(t.open_metadata.name, 'testSection1'));
290+
assert(strcmp(t.open_metadata.name, secName1));
291+
assert(strcmp(f.blocks{1}.tags{1}.open_metadata.name, secName1));
292+
285293
t.set_metadata(f.sections{2});
286-
assert(strcmp(t.open_metadata.name, 'testSection2'));
294+
assert(strcmp(t.open_metadata.name, secName2));
295+
assert(strcmp(f.blocks{1}.tags{1}.open_metadata.name, secName2));
296+
287297
t.set_metadata('');
288298
assert(isempty(t.open_metadata));
299+
assert(isempty(f.blocks{1}.tags{1}.open_metadata));
300+
301+
t.set_metadata(f.sections{2});
302+
clear tmp b f;
303+
f = nix.File(fileName, nix.FileMode.ReadOnly);
304+
assert(strcmp(f.blocks{1}.tags{1}.open_metadata.name, secName2));
289305
end
290306

291307
%% Test: Open metadata

0 commit comments

Comments
 (0)