Skip to content

Commit dc608f8

Browse files
authored
Bugfix/esmf 37 custom unit problems (#48)
* Fix custom unit and adjust some validation on that part Fixes: #37 * Update edit-unit.spec.ts
1 parent e395c01 commit dc608f8

File tree

4 files changed

+22
-18
lines changed

4 files changed

+22
-18
lines changed

core/apps/ame-e2e/src/integration/editor/edit-unit.spec.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ describe('Test editing Unit', () => {
5151
cy.getUpdatedRDF().then(rdf => {
5252
expect(rdf).to.contain('Quantifiable1 a samm-c:Quantifiable');
5353
expect(rdf).to.contain('samm-c:unit :CustomUnit1');
54-
expect(rdf).to.contain('CustomUnit1 a unit:Unit');
54+
expect(rdf).to.contain('CustomUnit1 a samm:Unit');
5555
expect(rdf).to.contain('samm:dataType xsd:string');
5656
});
5757
});
@@ -80,8 +80,8 @@ describe('Test editing Unit', () => {
8080
cy.getUpdatedRDF().then(rdf => {
8181
expect(rdf).to.contain('Quantifiable1 a samm-c:Quantifiable');
8282
expect(rdf).to.contain('samm-c:unit :CustomUnit2');
83-
expect(rdf).to.contain('CustomUnit2 a unit:Unit');
84-
expect(rdf).to.contain('CustomUnit1 a unit:Unit');
83+
expect(rdf).to.contain('CustomUnit2 a samm:Unit');
84+
expect(rdf).to.contain('CustomUnit1 a samm:Unit');
8585
expect(rdf).to.contain('samm:dataType xsd:string');
8686

8787
expect(rdf).not.contain('samm-c:unit :CustomUnit1');
@@ -102,8 +102,8 @@ describe('Test editing Unit', () => {
102102
.then(() => {
103103
cy.getUpdatedRDF().then(rdf => {
104104
expect(rdf).to.contain('Quantifiable1 a samm-c:Quantifiable');
105-
expect(rdf).to.contain('CustomUnit2 a unit:Unit');
106-
expect(rdf).to.contain('CustomUnit1 a unit:Unit');
105+
expect(rdf).to.contain('CustomUnit2 a samm:Unit');
106+
expect(rdf).to.contain('CustomUnit1 a samm:Unit');
107107
expect(rdf).to.contain('samm:dataType xsd:string');
108108

109109
expect(rdf).not.contain('samm-c:unit :CustomUnit1');
@@ -135,10 +135,10 @@ describe('Test editing Unit', () => {
135135
.then(() =>
136136
cy.getUpdatedRDF().then(rdf => {
137137
expect(rdf).to.contain('Quantifiable1 a samm-c:Quantifiable');
138-
expect(rdf).to.contain('CustomUnit1 a unit:Unit');
138+
expect(rdf).to.contain('CustomUnit1 a samm:Unit');
139139
expect(rdf).to.contain('samm:dataType xsd:string');
140140

141-
expect(rdf).not.contain('CustomUnit2 a unit:Unit');
141+
expect(rdf).not.contain('CustomUnit2 a samm:Unit');
142142
expect(rdf).not.contain('samm-c:unit :CustomUnit1');
143143
expect(rdf).not.contain('samm-c:unit :CustomUnit2');
144144
})
@@ -166,7 +166,7 @@ describe('Test editing Unit', () => {
166166
.then(() => {
167167
cy.getUpdatedRDF().then(rdf => {
168168
expect(rdf).to.contain('Measurement1 a samm-c:Measurement');
169-
expect(rdf).to.contain('CustomUnit1 a unit:Unit');
169+
expect(rdf).to.contain('CustomUnit1 a samm:Unit');
170170
expect(rdf).to.contain('samm-c:unit :CustomUnit1');
171171
expect(rdf).to.contain('samm:dataType xsd:string');
172172
});
@@ -194,7 +194,7 @@ describe('Test editing Unit', () => {
194194
.then(() => {
195195
cy.getUpdatedRDF().then(rdf => {
196196
expect(rdf).to.contain('Duration1 a samm-c:Duration');
197-
expect(rdf).to.contain('CustomUnit1 a unit:Unit');
197+
expect(rdf).to.contain('CustomUnit1 a samm:Unit');
198198
expect(rdf).to.contain('samm-c:unit :CustomUnit1');
199199
expect(rdf).to.contain('samm:dataType xsd:string');
200200
});
@@ -212,12 +212,12 @@ describe('Test editing Unit', () => {
212212
.then(() => {
213213
cy.getUpdatedRDF().then(rdf => {
214214
expect(rdf).to.contain('Duration1 a samm-c:Duration');
215-
expect(rdf).to.contain('CustomUnit1 a unit:Unit');
215+
expect(rdf).to.contain('CustomUnit1 a samm:Unit');
216216
expect(rdf).to.contain('samm-c:unit unit:day');
217217
expect(rdf).to.contain('samm:dataType xsd:string');
218218

219219
expect(rdf).not.contain('samm-c:unit :CustomUnit1');
220-
expect(rdf).not.contain('day a unit:Unit');
220+
expect(rdf).not.contain('day a samm:Unit');
221221
});
222222
});
223223
});
@@ -231,7 +231,7 @@ describe('Test editing Unit', () => {
231231
assert.isNull(aspect.properties[0].property.characteristic);
232232
});
233233
cy.getUpdatedRDF().then(rdf => {
234-
expect(rdf).to.contain('CustomUnit1 a unit:Unit');
234+
expect(rdf).to.contain('CustomUnit1 a samm:Unit');
235235

236236
expect(rdf).not.contain('Duration1');
237237
expect(rdf).not.contain('samm-c:unit :CustomUnit1');

core/libs/aspect-exporter/src/lib/rdf-node/rdf-node.service.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,9 @@ export class RdfNodeService {
105105
samm.getEncodingList().find(enc => enc.value === properties[key]).isDefinedBy
106106
);
107107
break;
108+
case PropertyEnum.NumericConversionFactor:
109+
this.addQuad(metaModelElement, properties[key], samm.getAspectModelUrn(key));
110+
break;
108111
case PropertyEnum.DataType:
109112
this.addDatatype(metaModelElement, samm.getAspectModelUrn(key), properties[key]);
110113
break;
@@ -120,10 +123,7 @@ export class RdfNodeService {
120123
case PropertyEnum.LanguageCode:
121124
this.addQuad(metaModelElement, properties[key], sammC.getAspectModelUrn(key), properties['characteristicType']);
122125
break;
123-
case PropertyEnum.CommonCode:
124-
case PropertyEnum.Symbol:
125126
case PropertyEnum.ConversionFactor:
126-
case PropertyEnum.NumericConversionFactor:
127127
this.addQuad(metaModelElement, properties[key], sammU.getAspectModelUrn(key));
128128
break;
129129
default:

core/libs/mx-graph/src/lib/helpers/mx-graph-visitor-helper.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -266,8 +266,8 @@ export class MxGraphVisitorHelper {
266266
}
267267

268268
static addNumericConversionFactor(unit: Unit): PropertyInformation {
269-
if (unit.conversionFactor) {
270-
return {label: `numericConversionFactor = ${unit.numericConversionFactor}`, key: 'conversionFactor'};
269+
if (unit.numericConversionFactor) {
270+
return {label: `numericConversionFactor = ${unit.numericConversionFactor}`, key: 'numericConversionFactor'};
271271
}
272272
return null;
273273
}

core/libs/rdf/src/lib/utils/rdf-model-util.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ import {MetaModelElementInstantiator} from '@ame/instantiator';
3737
import {RdfModel} from './rdf-model';
3838
import {Samm, SammC, SammE, SammU} from '@ame/vocabulary';
3939

40+
declare const sammUDefinition: any;
41+
4042
export class RdfModelUtil {
4143
static isSammUDefinition(urn: string, sammU: SammU): boolean {
4244
return urn && urn.includes(sammU.getNamespace());
@@ -102,6 +104,8 @@ export class RdfModelUtil {
102104
return this.getDataType(metaModelElement.dataType);
103105
} else if (metaModelElement instanceof DefaultState && sammC.isDefaultValueProperty(predicateUrn)) {
104106
return this.getDataType(metaModelElement.dataType);
107+
} else if (metaModelElement instanceof DefaultUnit && samm.isNumericConversionFactorProperty(predicateUrn)) {
108+
return this.getDataType(new DefaultScalar(simpleDataTypes?.double?.isDefinedBy));
105109
}
106110

107111
return null;
@@ -129,7 +133,7 @@ export class RdfModelUtil {
129133
} else if (modelElement instanceof DefaultCharacteristic || modelElement instanceof DefaultConstraint) {
130134
namespace = sammC.getNamespace();
131135
} else if (modelElement instanceof DefaultUnit) {
132-
namespace = sammU.getNamespace();
136+
namespace = modelElement.name in sammUDefinition.units ? sammU.getNamespace() : samm.getNamespace();
133137
} else if (modelElement instanceof DefaultEntity) {
134138
namespace = sammE.getNamespace();
135139
} else {

0 commit comments

Comments
 (0)