]> gerrit.simantics Code Review - simantics/platform.git/commitdiff
Fixed ComponentTypeCommands.setUnit to support unit == null 95/2395/2
authorTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Tue, 30 Oct 2018 11:14:56 +0000 (13:14 +0200)
committerTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Tue, 30 Oct 2018 11:17:09 +0000 (13:17 +0200)
If unit is null, also L0X.HasUnit should be removed.

gitlab #161

Change-Id: I0e6ba32917e6281803c7bbe8b94832291e58db9a

bundles/org.simantics.modeling/src/org/simantics/modeling/userComponent/ComponentTypeCommands.java

index ea4de26b22da5fe935c6153093ed476304278954..74ae599e3797f6a06d9c07f2c9ed6bc7d4789843 100644 (file)
@@ -334,12 +334,12 @@ public class ComponentTypeCommands {
             return;
         }
 
+        Layer0 L0 = Layer0.getInstance(graph);
         Layer0X L0X = Layer0X.getInstance(graph);
         boolean hasRequiresDataType = graph.hasStatement(relation, L0X.RequiresDataType);
         if (hasRequiresDataType) {
             Datatype dt = graph.getDataType(object);
             if (dt instanceof NumberType) {
-                Layer0 L0 = Layer0.getInstance(graph);
                 NumberType nt = (NumberType) Bindings.DATATYPE.cloneUnchecked(dt);
                 nt.setUnit(unit);
                 graph.claimLiteral(object, L0.HasDataType, L0.DataType, nt, Bindings.DATATYPE);
@@ -348,7 +348,11 @@ public class ComponentTypeCommands {
         }
 
         String oldUnit = graph.getPossibleRelatedValue2(relation, L0X.HasUnit, Bindings.STRING);
-        graph.claimLiteral(relation, L0X.HasUnit, unit, Bindings.STRING);
+        if (unit != null) {
+            graph.claimLiteral(relation, L0X.HasUnit, L0.String, unit, Bindings.STRING);
+        } else {
+            graph.denyValue(relation, L0X.HasUnit);
+        }
 
         CommentMetadata cm = graph.getMetadata(CommentMetadata.class);
         graph.addMetadata(cm.add("Set unit from " + oldUnit + " to " + unit + " for component/annotation " + type + " property " + relation));