*******************************************************************************/
package org.simantics.modeling.userComponent;
-import gnu.trove.map.hash.THashMap;
-
import java.util.Map;
import org.simantics.databoard.Bindings;
import org.simantics.selectionview.SelectionViewResources;
import org.simantics.structural.stubs.StructuralResource2;
import org.simantics.structural2.utils.StructuralUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import gnu.trove.map.hash.THashMap;
public class ComponentTypeCommands {
+ private static final Logger LOGGER = LoggerFactory.getLogger(ComponentTypeCommands.class);
+
public static void applyCode(WriteGraph g, Resource componentType, String code) throws DatabaseException {
StructuralResource2 STR = StructuralResource2.getInstance(g);
g.claimLiteral(componentType, STR.ProceduralComponentType_code, code, Bindings.STRING);
Resource object = getAssertedObject(g, type, relation);
if(object == null) {
- System.err.println("Didn't find assertion for " + NameUtils.getSafeName(g, relation) +
+ LOGGER.warn("Didn't find assertion for " + NameUtils.getSafeName(g, relation) +
" in " + NameUtils.getSafeName(g, type) + ".");
return;
}
Resource object = getAssertedObject(g, type, relation);
if(object == null) {
- System.err.println("Didn't find assertion for " + NameUtils.getSafeName(g, relation) +
+ LOGGER.warn("Didn't find assertion for " + NameUtils.getSafeName(g, relation) +
" in " + NameUtils.getSafeName(g, type) + ".");
return;
}
public static void setUnit(WriteGraph graph, Resource type, Resource relation, String unit) throws DatabaseException {
Resource object = getAssertedObject(graph, type, relation);
if (object == null) {
- System.err.println("Didn't find assertion for " + NameUtils.getSafeName(graph, relation) +
+ LOGGER.warn("Didn't find assertion for " + NameUtils.getSafeName(graph, relation) +
" in " + NameUtils.getSafeName(graph, type) + ".");
return;
}
- Datatype dt = graph.getDataType(object);
- if (dt instanceof NumberType) {
- NumberType nt = (NumberType) dt;
- Binding ntb = Bindings.getBindingUnchecked(Datatype.class);
- nt.setUnit(unit);
-
- Layer0 L0 = Layer0.getInstance(graph);
- Layer0X L0X = Layer0X.getInstance(graph);
-
- String oldUnit = graph.getPossibleRelatedValue2(relation, L0X.HasUnit, Bindings.STRING);
+ 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) {
+ NumberType nt = (NumberType) Bindings.DATATYPE.cloneUnchecked(dt);
+ nt.setUnit(unit);
+ graph.claimLiteral(object, L0.HasDataType, L0.DataType, nt, Bindings.DATATYPE);
+ graph.claimLiteral(relation, L0X.RequiresDataType, L0.DataType, nt, Bindings.DATATYPE);
+ }
+ }
- graph.claimLiteral(object, L0.HasDataType, L0.DataType, nt, ntb);
- graph.claimLiteral(relation, L0X.RequiresDataType, L0.DataType, nt, ntb);
- graph.claimLiteral(relation, L0X.HasUnit, unit, Bindings.STRING);
-
- CommentMetadata cm = graph.getMetadata(CommentMetadata.class);
- graph.addMetadata(cm.add("Setted unit from " + oldUnit + " to " + unit + " for component/annotation " + type));
+ String oldUnit = graph.getPossibleRelatedValue2(relation, L0X.HasUnit, 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));
}
/**
public static void setRange(WriteGraph graph, Resource type, Resource relation, String newRange) throws DatabaseException {
Resource object = getAssertedObject(graph, type, relation);
if (object == null) {
- System.err.println("Didn't find assertion for " + NameUtils.getSafeName(graph, relation) +
+ LOGGER.warn("Didn't find assertion for " + NameUtils.getSafeName(graph, relation) +
" in " + NameUtils.getSafeName(graph, type) + ".");
return;
}
Datatype newDatatype = TypeConversion.convertSCLTypeToDatatype(newSCLType);
if(newDatatype == null) {
- System.err.println("Couldn't convert default value to <" + newSCLType + ">.");
+ LOGGER.warn("Couldn't convert default value to <" + newSCLType + ">.");
return null;
}
Binding newBinding = Bindings.getBinding(newDatatype);
Resource type, Resource relation, String newSCLType) throws DatabaseException {
Resource object = getAssertedObject(g, type, relation);
if(object == null) {
- System.err.println("Didn't find assertion for " + NameUtils.getSafeName(g, relation) +
+ LOGGER.warn("Didn't find assertion for " + NameUtils.getSafeName(g, relation) +
" in " + NameUtils.getSafeName(g, type) + ".");
return;
}