Skip to content

Commit 8c6a3fd

Browse files
authored
Merge pull request #148 from mpsonntag/filterFunctions
LGTM
2 parents 5ceaf83 + 793fdaa commit 8c6a3fd

35 files changed

+1870
-25
lines changed

+nix/Block.m

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,11 @@
5959
delCheck = nix.Utils.delete_entity(obj, ...
6060
del, 'nix.Group', 'Block::deleteGroup');
6161
end;
62+
63+
function filtered = filter_groups(obj, filter, val)
64+
filtered = nix.Utils.filter(obj, filter, val, ...
65+
'Block::groupsFiltered', @nix.Group);
66+
end
6267

6368
% -----------------
6469
% DataArray methods
@@ -137,6 +142,11 @@
137142
del, 'nix.DataArray', 'Block::deleteDataArray');
138143
end;
139144

145+
function filtered = filter_data_arrays(obj, filter, val)
146+
filtered = nix.Utils.filter(obj, filter, val, ...
147+
'Block::dataArraysFiltered', @nix.DataArray);
148+
end
149+
140150
% -----------------
141151
% Sources methods
142152
% -----------------
@@ -169,6 +179,11 @@
169179
'Block::openSourceIdx', idx, @nix.Source);
170180
end
171181

182+
function filtered = filter_sources(obj, filter, val)
183+
filtered = nix.Utils.filter(obj, filter, val, ...
184+
'Block::sourcesFiltered', @nix.Source);
185+
end
186+
172187
% -----------------
173188
% Tags methods
174189
% -----------------
@@ -202,6 +217,11 @@
202217
del, 'nix.Tag', 'Block::deleteTag');
203218
end;
204219

220+
function filtered = filter_tags(obj, filter, val)
221+
filtered = nix.Utils.filter(obj, filter, val, ...
222+
'Block::tagsFiltered', @nix.Tag);
223+
end
224+
205225
% -----------------
206226
% MultiTag methods
207227
% -----------------
@@ -241,5 +261,10 @@
241261
del, 'nix.MultiTag', 'Block::deleteMultiTag');
242262
end;
243263

264+
function filtered = filter_multi_tags(obj, filter, val)
265+
filtered = nix.Utils.filter(obj, filter, val, ...
266+
'Block::multiTagsFiltered', @nix.MultiTag);
267+
end
268+
244269
end;
245270
end

+nix/File.m

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,11 @@
7373
del, 'nix.Block', 'File::deleteBlock');
7474
end;
7575

76+
function filtered = filter_blocks(obj, filter, val)
77+
filtered = nix.Utils.filter(obj, filter, val, ...
78+
'File::blocksFiltered', @nix.Block);
79+
end
80+
7681
% ----------------
7782
% Section methods
7883
% ----------------
@@ -101,7 +106,12 @@
101106

102107
function delCheck = delete_section(obj, del)
103108
delCheck = nix.Utils.delete_entity(obj, del, 'nix.Section', 'File::deleteSection');
104-
end;
109+
end
110+
111+
function filtered = filter_sections(obj, filter, val)
112+
filtered = nix.Utils.filter(obj, filter, val, ...
113+
'File::sectionsFiltered', @nix.Section);
114+
end
105115
end
106116

107117
end

+nix/Filter.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
ids (2); % requires a cell array
88
type (3);
99
name (4);
10-
metadata (5);
11-
source (6);
10+
metadata (5); % filters by id
11+
source (6); % filters by name or id
1212
end
1313

1414
end

+nix/Group.m

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,11 @@
6464
'nix.DataArray', 'Group::removeDataArray');
6565
end;
6666

67+
function filtered = filter_data_arrays(obj, filter, val)
68+
filtered = nix.Utils.filter(obj, filter, val, ...
69+
'Group::dataArraysFiltered', @nix.DataArray);
70+
end
71+
6772
% -----------------
6873
% Tags methods
6974
% -----------------
@@ -101,6 +106,11 @@
101106
c = nix_mx('Group::tagCount', obj.nix_handle);
102107
end
103108

109+
function filtered = filter_tags(obj, filter, val)
110+
filtered = nix.Utils.filter(obj, filter, val, ...
111+
'Group::tagsFiltered', @nix.Tag);
112+
end
113+
104114
% -----------------
105115
% MultiTag methods
106116
% -----------------
@@ -138,6 +148,11 @@
138148
function c = multi_tag_count(obj)
139149
c = nix_mx('Group::multiTagCount', obj.nix_handle);
140150
end
151+
152+
function filtered = filter_multi_tags(obj, filter, val)
153+
filtered = nix.Utils.filter(obj, filter, val, ...
154+
'Group::multiTagsFiltered', @nix.MultiTag);
155+
end
141156
end;
142157

143158
end

+nix/MultiTag.m

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,11 @@
7878
c = nix_mx('MultiTag::referenceCount', obj.nix_handle);
7979
end
8080

81+
function filtered = filter_references(obj, filter, val)
82+
filtered = nix.Utils.filter(obj, filter, val, ...
83+
'MultiTag::referencesFiltered', @nix.DataArray);
84+
end
85+
8186
% ------------------
8287
% Features methods
8388
% ------------------
@@ -127,6 +132,11 @@
127132
c = nix_mx('MultiTag::featureCount', obj.nix_handle);
128133
end
129134

135+
function filtered = filter_features(obj, filter, val)
136+
filtered = nix.Utils.filter(obj, filter, val, ...
137+
'MultiTag::featuresFiltered', @nix.Feature);
138+
end
139+
130140
% ------------------
131141
% Positions methods
132142
% ------------------

+nix/Section.m

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,11 @@
102102
c = nix_mx('Section::sectionCount', obj.nix_handle);
103103
end
104104

105+
function filtered = filter_sections(obj, filter, val)
106+
filtered = nix.Utils.filter(obj, filter, val, ...
107+
'Section::sectionsFiltered', @nix.Section);
108+
end
109+
105110
% ----------------
106111
% Property methods
107112
% ----------------
@@ -161,6 +166,11 @@
161166
c = nix_mx('Section::propertyCount', obj.nix_handle);
162167
end
163168

169+
function filtered = filter_properties(obj, filter, val)
170+
filtered = nix.Utils.filter(obj, filter, val, ...
171+
'Section::propertiesFiltered', @nix.Property);
172+
end
173+
164174
% ----------------
165175
% Referring entity methods
166176
% ----------------

+nix/Source.m

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,5 +73,10 @@
7373
retObj = nix.Utils.fetchObjList('Source::referringMultiTags', ...
7474
obj.nix_handle, @nix.MultiTag);
7575
end
76+
77+
function filtered = filter_sources(obj, filter, val)
78+
filtered = nix.Utils.filter(obj, filter, val, ...
79+
'Source::sourcesFiltered', @nix.Source);
80+
end
7681
end;
7782
end

+nix/SourcesMixIn.m

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@
5959
strcat(obj.alias, '::openSourceIdx'), idx, @nix.Source);
6060
end
6161

62+
function filtered = filter_sources(obj, filter, val)
63+
filtered = nix.Utils.filter(obj, filter, val, ...
64+
strcat(obj.alias, '::sourcesFiltered'), @nix.Source);
65+
end
6266
end
6367

6468
end

+nix/Tag.m

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,11 @@
7777
c = nix_mx('Tag::referenceCount', obj.nix_handle);
7878
end
7979

80+
function filtered = filter_references(obj, filter, val)
81+
filtered = nix.Utils.filter(obj, filter, val, ...
82+
'Tag::referencesFiltered', @nix.DataArray);
83+
end
84+
8085
% ------------------
8186
% Features methods
8287
% ------------------
@@ -123,5 +128,10 @@
123128
function c = feature_count(obj)
124129
c = nix_mx('Tag::featureCount', obj.nix_handle);
125130
end
131+
132+
function filtered = filter_features(obj, filter, val)
133+
filtered = nix.Utils.filter(obj, filter, val, ...
134+
'Tag::featuresFiltered', @nix.Feature);
135+
end
126136
end;
127137
end

nix_mx.cc

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,8 @@ void mexFunction(int nlhs,
121121
methods->add("File::validate", nixfile::validate);
122122
methods->add("File::openBlockIdx", nixfile::openBlockIdx);
123123
methods->add("File::openSectionIdx", nixfile::openSectionIdx);
124+
methods->add("File::sectionsFiltered", nixfile::sectionsFiltered);
125+
methods->add("File::blocksFiltered", nixfile::blocksFiltered);
124126

125127
classdef<nix::Block>("Block", methods)
126128
.desc(&nixblock::describe)
@@ -166,6 +168,11 @@ void mexFunction(int nlhs,
166168
methods->add("Block::openMultiTagIdx", nixblock::openMultiTagIdx);
167169
methods->add("Block::openSourceIdx", nixblock::openSourceIdx);
168170
methods->add("Block::compare", nixblock::compare);
171+
methods->add("Block::sourcesFiltered", nixblock::sourcesFiltered);
172+
methods->add("Block::groupsFiltered", nixblock::groupsFiltered);
173+
methods->add("Block::tagsFiltered", nixblock::tagsFiltered);
174+
methods->add("Block::multiTagsFiltered", nixblock::multiTagsFiltered);
175+
methods->add("Block::dataArraysFiltered", nixblock::dataArraysFiltered);
169176

170177
classdef<nix::Group>("Group", methods)
171178
.desc(&nixgroup::describe)
@@ -208,6 +215,10 @@ void mexFunction(int nlhs,
208215
methods->add("Group::openMultiTagIdx", nixgroup::openMultiTagIdx);
209216
methods->add("Group::openSourceIdx", nixgroup::openSourceIdx);
210217
methods->add("Group::compare", nixgroup::compare);
218+
methods->add("Group::sourcesFiltered", nixgroup::sourcesFiltered);
219+
methods->add("Group::tagsFiltered", nixgroup::tagsFiltered);
220+
methods->add("Group::multiTagsFiltered", nixgroup::multiTagsFiltered);
221+
methods->add("Group::dataArraysFiltered", nixgroup::dataArraysFiltered);
211222

212223
classdef<nix::DataArray>("DataArray", methods)
213224
.desc(&nixdataarray::describe)
@@ -251,6 +262,7 @@ void mexFunction(int nlhs,
251262
methods->add("DataArray::openSourceIdx", nixdataarray::openSourceIdx);
252263
methods->add("DataArray::openDimensionIdx", nixdataarray::openDimensionIdx);
253264
methods->add("DataArray::compare", nixdataarray::compare);
265+
methods->add("DataArray::sourcesFiltered", nixdataarray::sourcesFiltered);
254266

255267
classdef<nix::Source>("Source", methods)
256268
.desc(&nixsource::describe)
@@ -272,6 +284,7 @@ void mexFunction(int nlhs,
272284
.reg("referringMultiTags", GETTER(std::vector<nix::MultiTag>, nix::Source, referringMultiTags));
273285
methods->add("Source::openSourceIdx", nixsource::openSourceIdx);
274286
methods->add("Source::compare", nixsource::compare);
287+
methods->add("Source::sourcesFiltered", nixsource::sourcesFiltered);
275288

276289
classdef<nix::Tag>("Tag", methods)
277290
.desc(&nixtag::describe)
@@ -312,6 +325,9 @@ void mexFunction(int nlhs,
312325
methods->add("Tag::openFeatureIdx", nixtag::openFeatureIdx);
313326
methods->add("Tag::openSourceIdx", nixtag::openSourceIdx);
314327
methods->add("Tag::compare", nixtag::compare);
328+
methods->add("Tag::sourcesFiltered", nixtag::sourcesFiltered);
329+
methods->add("Tag::referencesFiltered", nixtag::referencesFiltered);
330+
methods->add("Tag::featuresFiltered", nixtag::featuresFiltered);
315331

316332
classdef<nix::MultiTag>("MultiTag", methods)
317333
.desc(&nixmultitag::describe)
@@ -355,6 +371,9 @@ void mexFunction(int nlhs,
355371
methods->add("MultiTag::openFeatureIdx", nixmultitag::openFeatureIdx);
356372
methods->add("MultiTag::openSourceIdx", nixmultitag::openSourceIdx);
357373
methods->add("MultiTag::compare", nixmultitag::compare);
374+
methods->add("MultiTag::sourcesFiltered", nixmultitag::sourcesFiltered);
375+
methods->add("MultiTag::referencesFiltered", nixmultitag::referencesFiltered);
376+
methods->add("MultiTag::featuresFiltered", nixmultitag::featuresFiltered);
358377

359378
classdef<nix::Section>("Section", methods)
360379
.desc(&nixsection::describe)
@@ -395,6 +414,8 @@ void mexFunction(int nlhs,
395414
methods->add("Section::openSectionIdx", nixsection::openSectionIdx);
396415
methods->add("Section::openPropertyIdx", nixsection::openPropertyIdx);
397416
methods->add("Section::compare", nixsection::compare);
417+
methods->add("Section::sectionsFiltered", nixsection::sectionsFiltered);
418+
methods->add("Section::propertiesFiltered", nixsection::propertiesFiltered);
398419

399420
classdef<nix::Feature>("Feature", methods)
400421
.desc(&nixfeature::describe)

0 commit comments

Comments
 (0)