Skip to content

Commit d1b4cbb

Browse files
authored
Merge pull request #158 from mpsonntag/help
what a monster, lgtm, though
2 parents 4511b91 + cc3c617 commit d1b4cbb

23 files changed

+1005
-948
lines changed

+nix/Block.m

Lines changed: 169 additions & 158 deletions
Large diffs are not rendered by default.

+nix/DataArray.m

Lines changed: 68 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -8,37 +8,38 @@
88

99
classdef DataArray < nix.NamedEntity & nix.MetadataMixIn & nix.SourcesMixIn
1010
%DataArray nix DataArray object
11-
11+
1212
properties (Hidden)
1313
% namespace reference for nix-mx functions
1414
alias = 'DataArray'
15-
end;
15+
end
1616

1717
properties(Dependent)
1818
dimensions % should not be dynamic due to complex set operation
19-
end;
20-
19+
end
20+
2121
methods
2222
function obj = DataArray(h)
2323
2424
2525
26-
26+
2727
% assign dynamic properties
2828
nix.Dynamic.add_dyn_attr(obj, 'label', 'rw');
2929
nix.Dynamic.add_dyn_attr(obj, 'unit', 'rw');
3030
nix.Dynamic.add_dyn_attr(obj, 'expansionOrigin', 'rw');
3131
nix.Dynamic.add_dyn_attr(obj, 'polynomCoefficients', 'rw');
3232
nix.Dynamic.add_dyn_attr(obj, 'dataExtent', 'rw');
33-
end;
33+
end
3434

3535
% -----------------
3636
% Dimensions
3737
% -----------------
38-
38+
3939
function dimensions = get.dimensions(obj)
4040
dimensions = {};
41-
currList = nix_mx('DataArray::dimensions', obj.nix_handle);
41+
fname = strcat(obj.alias, '::dimensions');
42+
currList = nix_mx(fname, obj.nix_handle);
4243
for i = 1:length(currList)
4344
switch currList(i).dtype
4445
case 'set'
@@ -49,73 +50,77 @@
4950
dimensions{i} = nix.RangeDimension(currList(i).dimension);
5051
otherwise
5152
disp('some dimension type is unknown! skip')
52-
end;
53-
end;
54-
end;
55-
56-
function dim = append_set_dimension(obj)
57-
func_name = strcat(obj.alias, '::appendSetDimension');
58-
dim = nix.SetDimension(nix_mx(func_name, obj.nix_handle));
53+
end
54+
end
55+
end
56+
57+
function r = append_set_dimension(obj)
58+
fname = strcat(obj.alias, '::appendSetDimension');
59+
h = nix_mx(fname, obj.nix_handle);
60+
r = nix.SetDimension(h);
5961
end
60-
61-
function dim = append_sampled_dimension(obj, interval)
62-
func_name = strcat(obj.alias, '::appendSampledDimension');
63-
dim = nix.SampledDimension(nix_mx(func_name, obj.nix_handle, interval));
62+
63+
function r = append_sampled_dimension(obj, interval)
64+
fname = strcat(obj.alias, '::appendSampledDimension');
65+
h = nix_mx(fname, obj.nix_handle, interval);
66+
r = nix.SampledDimension(h);
6467
end
6568

66-
function dim = append_range_dimension(obj, ticks)
67-
func_name = strcat(obj.alias, '::appendRangeDimension');
68-
dim = nix.RangeDimension(nix_mx(func_name, obj.nix_handle, ticks));
69+
function r = append_range_dimension(obj, ticks)
70+
fname = strcat(obj.alias, '::appendRangeDimension');
71+
h = nix_mx(fname, obj.nix_handle, ticks);
72+
r = nix.RangeDimension(h);
6973
end
7074

71-
function dim = append_alias_range_dimension(obj)
72-
func_name = strcat(obj.alias, '::appendAliasRangeDimension');
73-
dim = nix.RangeDimension(nix_mx(func_name, obj.nix_handle));
75+
function r = append_alias_range_dimension(obj)
76+
fname = strcat(obj.alias, '::appendAliasRangeDimension');
77+
h = nix_mx(fname, obj.nix_handle);
78+
r = nix.RangeDimension(h);
7479
end
75-
76-
function dim = open_dimension_idx(obj, idx)
80+
81+
function r = open_dimension_idx(obj, idx)
7782
% Getting the dimension by index starts with 1
7883
% instead of 0 compared to all other index functions.
79-
func_name = strcat(obj.alias, '::openDimensionIdx');
80-
ret = nix_mx(func_name, obj.nix_handle, idx);
81-
switch(ret.dimension_type)
84+
fname = strcat(obj.alias, '::openDimensionIdx');
85+
dim = nix_mx(fname, obj.nix_handle, idx);
86+
switch(dim.dimension_type)
8287
case 'set'
83-
dim = nix.SetDimension(ret.handle);
88+
r = nix.SetDimension(dim.handle);
8489
case 'sampled'
85-
dim = nix.SampledDimension(ret.handle);
90+
r = nix.SampledDimension(dim.handle);
8691
case 'range'
87-
dim = nix.RangeDimension(ret.handle);
88-
end;
92+
r = nix.RangeDimension(dim.handle);
93+
end
8994
end
9095

91-
function delCheck = delete_dimensions(obj)
92-
func_name = strcat(obj.alias, '::deleteDimensions');
93-
delCheck = nix_mx(func_name, obj.nix_handle);
96+
function r = delete_dimensions(obj)
97+
fname = strcat(obj.alias, '::deleteDimensions');
98+
r = nix_mx(fname, obj.nix_handle);
9499
end
95100

96-
function c = dimension_count(obj)
97-
c = nix_mx('DataArray::dimensionCount', obj.nix_handle);
101+
function r = dimension_count(obj)
102+
fname = strcat(obj.alias, '::dimensionCount');
103+
r = nix_mx(fname, obj.nix_handle);
98104
end
99105

100106
% -----------------
101107
% Data access methods
102108
% -----------------
103109

104-
function data = read_all(obj)
105-
tmp = nix_mx('DataArray::readAll', obj.nix_handle);
106-
% data must agree with file & dimensions
107-
% see mkarray.cc(42)
108-
data = permute(tmp, length(size(tmp)):-1:1);
109-
end;
110-
110+
function r = read_all(obj)
111+
fname = strcat(obj.alias, '::readAll');
112+
data = nix_mx(fname, obj.nix_handle);
113+
r = nix.Utils.transpose_array(data);
114+
end
115+
111116
%-- TODO add (optional) offset
112117
%-- If a DataArray has been created as boolean or numeric,
113118
%-- provide that only values of the proper DataType can be written.
114-
function write_all(obj, data)
119+
function [] = write_all(obj, data)
115120
if(isinteger(obj.read_all) && isfloat(data))
116121
disp('Warning: Writing Float data to an Integer DataArray');
117-
end;
118-
122+
end
123+
119124
errorStruct.identifier = 'DataArray:improperDataType';
120125
if(islogical(obj.read_all) && ~islogical(data))
121126
errorStruct.message = strcat('Trying to write', ...
@@ -134,18 +139,17 @@ function write_all(obj, data)
134139
errorStruct.message = ('Writing char/string DataArrays is not supported as of yet.');
135140
error(errorStruct);
136141
else
137-
% data must agree with file & dimensions
138-
% see mkarray.cc(42)
139-
tmp = permute(data, length(size(data)):-1:1);
140-
nix_mx('DataArray::writeAll', obj.nix_handle, tmp);
141-
end;
142-
end;
143-
144-
function s = datatype(obj)
145-
s = nix_mx('DataArray::dataType', obj.nix_handle);
142+
fname = strcat(obj.alias, '::writeAll');
143+
nix_mx(fname, obj.nix_handle, nix.Utils.transpose_array(data));
144+
end
146145
end
147-
148-
% set data extent enabels to increase the original size
146+
147+
function r = datatype(obj)
148+
fname = strcat(obj.alias, '::dataType');
149+
r = nix_mx(fname, obj.nix_handle);
150+
end
151+
152+
% Set data extent enables to increase the original size
149153
% of a data array within the same dimensions.
150154
% e.g. increase the size of a 2D array [5 10] to another
151155
% 2D array [5 11]. Changing the dimensions is not possible
@@ -155,9 +159,11 @@ function write_all(obj, data)
155159
% shape, existing data that does not fit into the new shape
156160
% will be lost!
157161
function [] = set_data_extent(obj, extent)
158-
nix_mx('DataArray::setDataExtent', obj.nix_handle, extent);
162+
fname = strcat(obj.alias, '::setDataExtent');
163+
nix_mx(fname, obj.nix_handle, extent);
159164
% update changed dataExtent in obj.info
160165
obj.info = nix_mx(strcat(obj.alias, '::describe'), obj.nix_handle);
161166
end
162-
end;
167+
end
168+
163169
end

+nix/DataType.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,5 @@
2323
UInt32;
2424
UInt64;
2525
end
26-
26+
2727
end

+nix/Dynamic.m

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@
77
% LICENSE file in the root of the Project.
88

99
classdef Dynamic
10-
%Dynamic class (with static methods hehe)
10+
% Dynamic class (with static methods hehe)
1111
% implements methods to dynamically assigns properties
1212

1313
methods (Static)
1414
function add_dyn_attr(obj, prop, mode)
1515
if nargin < 3
1616
mode = 'r';
1717
end
18-
18+
1919
% create dynamic property
2020
p = addprop(obj, prop);
2121

@@ -32,15 +32,17 @@ function set_method(obj, val)
3232
end
3333

3434
if (isempty(val))
35-
nix_mx(strcat(obj.alias, '::setNone', upper(prop(1)), prop(2:end)), obj.nix_handle, 0);
35+
fname = strcat(obj.alias, '::setNone', upper(prop(1)), prop(2:end));
36+
nix_mx(fname, obj.nix_handle, 0);
3637
elseif((strcmp(prop, 'units') || strcmp(prop, 'labels')) && (~iscell(val)))
3738
%-- BUGFIX: Matlab crashes, if units in Tags and MultiTags
3839
%-- or labels of SetDimension are set using anything else than a cell.
3940
ME = MException('MATLAB:class:SetProhibited', sprintf(...
4041
'This value only supports cells.'));
4142
throwAsCaller(ME);
4243
else
43-
nix_mx(strcat(obj.alias, '::set', upper(prop(1)), prop(2:end)), obj.nix_handle, val);
44+
fname = strcat(obj.alias, '::set', upper(prop(1)), prop(2:end));
45+
nix_mx(fname, obj.nix_handle, val);
4446
end
4547
obj.info = nix_mx(strcat(obj.alias, '::describe'), obj.nix_handle);
4648
end
@@ -49,7 +51,7 @@ function set_method(obj, val)
4951
val = obj.info.(prop);
5052
end
5153
end
52-
54+
5355
function add_dyn_relation(obj, name, constructor)
5456
dataAttr = strcat(name, 'Data');
5557
data = addprop(obj, dataAttr);
@@ -59,19 +61,19 @@ function add_dyn_relation(obj, name, constructor)
5961
% adds a proxy property
6062
rel = addprop(obj, name);
6163
rel.GetMethod = @get_method;
62-
64+
6365
% same property but returns Map
6466
rel_map = addprop(obj, strcat(name, 'Map'));
6567
rel_map.GetMethod = @get_as_map;
6668
rel_map.Hidden = true;
67-
69+
6870
function val = get_method(obj)
6971
obj.(dataAttr) = nix.Utils.fetchObjList(...
7072
strcat(obj.alias, '::', name), obj.nix_handle, ...
7173
constructor);
7274
val = obj.(dataAttr);
7375
end
74-
76+
7577
function val = get_as_map(obj)
7678
val = containers.Map();
7779
props = obj.(name);

+nix/Entity.m

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,33 +7,33 @@
77
% LICENSE file in the root of the Project.
88

99
classdef Entity < dynamicprops
10-
%Entity base class for nix entities
10+
% Entity base class for nix entities
1111
% handles object lifetime
12-
12+
1313
properties (Hidden)
1414
nix_handle
1515
info
1616
end
17-
17+
1818
properties (Abstract, Hidden)
1919
alias
2020
end
21-
21+
2222
methods
2323
function obj = Entity(h)
2424
obj.nix_handle = h;
25-
25+
2626
% fetch all object attrs
2727
obj.info = nix_mx(strcat(obj.alias, '::describe'), obj.nix_handle);
2828
end
29-
30-
function delete(obj)
29+
30+
function [] = delete(obj)
3131
nix_mx('Entity::destroy', obj.nix_handle);
3232
end
33-
34-
function ua = updatedAt(obj)
35-
ua = nix_mx('Entity::updatedAt', obj.nix_handle);
36-
end;
33+
34+
function r = updatedAt(obj)
35+
r = nix_mx('Entity::updatedAt', obj.nix_handle);
36+
end
3737
end
38-
38+
3939
end

0 commit comments

Comments
 (0)