]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling/src/org/simantics/modeling/userComponent/ComponentTypeCommands.java
Fixed ComponentTypeCommands.setUnit to support unit == null
[simantics/platform.git] / 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));