Skip to content

Commit 7d6affc

Browse files
committed
[Matlab] Add nix.Utils.parseEntityId function
1 parent 66f4ee8 commit 7d6affc

File tree

7 files changed

+31
-50
lines changed

7 files changed

+31
-50
lines changed

+nix/Block.m

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -267,15 +267,10 @@
267267

268268
%-- Creating a multitag requires an already existing data array
269269
function r = create_multi_tag(obj, name, type, add_data_array)
270-
if (isa(add_data_array, 'nix.DataArray'))
271-
addID = add_data_array.id;
272-
else
273-
addID = add_data_array;
274-
end
275-
276270
fname = strcat(obj.alias, '::createMultiTag');
277-
h = nix_mx(fname, obj.nix_handle, name, type, addID);
278-
r = nix.MultiTag(h);
271+
id = nix.Utils.parseEntityId(add_data_array, 'nix.DataArray');
272+
h = nix_mx(fname, obj.nix_handle, name, type, id);
273+
r = nix.Utils.createEntity(h, @nix.MultiTag);
279274
end
280275

281276
function r = delete_multi_tag(obj, del)

+nix/Feature.m

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,9 @@
4545
end
4646

4747
function [] = set_data(obj, setData)
48-
if (isa(setData, 'nix.DataArray'))
49-
setData = setData.id;
50-
end
48+
id = nix.Utils.parseEntityId(setData, 'nix.DataArray');
5149
fname = strcat(obj.alias, '::setData');
52-
nix_mx(fname, obj.nix_handle, setData);
50+
nix_mx(fname, obj.nix_handle, id);
5351
end
5452
end
5553

+nix/MultiTag.m

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -89,14 +89,9 @@
8989
% ------------------
9090

9191
function r = add_feature(obj, add_this, link_type)
92-
if (isa(add_this, 'nix.DataArray'))
93-
addID = add_this.id;
94-
else
95-
addID = add_this;
96-
end
97-
92+
addId = nix.Utils.parseEntityId(add_this, 'nix.DataArray');
9893
fname = strcat(obj.alias, '::createFeature');
99-
h = nix_mx(fname, obj.nix_handle, addID, link_type);
94+
h = nix_mx(fname, obj.nix_handle, addId, link_type);
10095
r = nix.Utils.createEntity(h, @nix.Feature);
10196
end
10297

+nix/Section.m

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -142,15 +142,13 @@
142142

143143
function r = delete_property(obj, del)
144144
if (isstruct(del) && isfield(del, 'id'))
145-
delID = del.id;
146-
elseif (isa(del, 'nix.Property'))
147-
delID = del.id;
145+
id = del.id;
148146
else
149-
delID = del;
147+
id = nix.Utils.parseEntityId(del, 'nix.Property');
150148
end
151149

152150
fname = strcat(obj.alias, '::deleteProperty');
153-
r = nix_mx(fname, obj.nix_handle, delID);
151+
r = nix_mx(fname, obj.nix_handle, id);
154152
end
155153

156154
function r = open_property(obj, id_or_name)

+nix/SourcesMixIn.m

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,7 @@
2626

2727
% has_source supports only check by id, not by name
2828
function r = has_source(obj, id_or_entity)
29-
has = id_or_entity;
30-
if (isa(has, 'nix.Source'))
31-
has = id_or_entity.id;
32-
end
33-
29+
has = nix.Utils.parseEntityId(id_or_entity, 'nix.Source');
3430
fname = strcat(obj.alias, '::hasSource');
3531
r = nix_mx(fname, obj.nix_handle, has);
3632
end

+nix/Tag.m

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,9 @@
9191
% ------------------
9292

9393
function r = add_feature(obj, add_this, link_type)
94-
if (isa(add_this, 'nix.DataArray'))
95-
addID = add_this.id;
96-
else
97-
addID = add_this;
98-
end
99-
94+
id = nix.Utils.parseEntityId(add_this, 'nix.DataArray');
10095
fname = strcat(obj.alias, '::createFeature');
101-
h = nix_mx(fname, obj.nix_handle, addID, link_type);
96+
h = nix_mx(fname, obj.nix_handle, id, link_type);
10297
r = nix.Utils.createEntity(h, @nix.Feature);
10398
end
10499

+nix/Utils.m

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,18 @@
1010

1111
methods(Static)
1212

13+
function r = parseEntityId(id_or_entity, nixEntity)
14+
if (isa(id_or_entity, nixEntity))
15+
r = id_or_entity.id;
16+
elseif (isa(id_or_entity, 'char'))
17+
r = id_or_entity;
18+
else
19+
err.identifier = 'NIXMX:InvalidArgument';
20+
err.message = sprintf('Expected an id, name or %s entity', nixEntity);
21+
error(err);
22+
end
23+
end
24+
1325
function r = createEntity(handle, objConstructor)
1426
r = {};
1527
if (handle ~= 0)
@@ -44,13 +56,9 @@
4456
r = nix.Utils.createEntity(h, objConstructor);
4557
end
4658

47-
function [] = add_entity(obj, add_this, nixEntity, mxMethod)
48-
if (isa(add_this, nixEntity))
49-
addID = add_this.id;
50-
else
51-
addID = add_this;
52-
end
53-
nix_mx(mxMethod, obj.nix_handle, addID);
59+
function [] = add_entity(obj, idNameEntity, nixEntity, mxMethod)
60+
id = nix.Utils.parseEntityId(idNameEntity, nixEntity);
61+
nix_mx(mxMethod, obj.nix_handle, id);
5462
end
5563

5664
function [] = add_entity_array(obj, add_cell_array, nixEntity, mxMethod)
@@ -70,13 +78,9 @@
7078
% Function can be used for both nix delete and remove methods.
7179
% The first actually removes the entity, the latter
7280
% removes only the reference to the entity.
73-
function r = delete_entity(obj, del, nixEntity, mxMethod)
74-
if (isa(del, nixEntity))
75-
delID = del.id;
76-
else
77-
delID = del;
78-
end
79-
r = nix_mx(mxMethod, obj.nix_handle, delID);
81+
function r = delete_entity(obj, idNameEntity, nixEntity, mxMethod)
82+
id = nix.Utils.parseEntityId(idNameEntity, nixEntity);
83+
r = nix_mx(mxMethod, obj.nix_handle, id);
8084
end
8185

8286
function r = open_entity(obj, mxMethod, id_or_name, objConstructor)

0 commit comments

Comments
 (0)