import org.simantics.databoard.type.UnionType;
import org.simantics.databoard.type.VariantType;
import org.simantics.databoard.util.ObjectUtils;
+import org.simantics.datatypes.literal.GUID;
import org.simantics.db.ChangeSetIdentifier;
import org.simantics.db.Operation;
import org.simantics.db.ReadGraph;
}
- public static void claimAdaptedValue(WriteGraph graph, Resource objectResource, Object value, Binding binding, Datatype datatype) throws DatabaseException {
+ public static void claimAdaptedValue(WriteGraph graph, Resource objectResource, Object value, Binding binding, Datatype targetDatatype) throws DatabaseException {
try {
- Datatype source = binding.type();
- if(source.equals(datatype)) {
+ Datatype sourceDatatype = binding.type();
+ if(sourceDatatype.equals(targetDatatype)) {
graph.claimValue(objectResource, value, binding);
} else {
- Binding target = Bindings.getBinding(datatype);
- Adapter adapter = Bindings.getAdapter(binding, target);
+ Binding target = Bindings.getBinding(targetDatatype);
+ Adapter adapter = Bindings.getTypeAdapter(binding, target);
graph.claimValue(objectResource, adapter.adapt(value), target);
}
}
- public static String prettyPrintResource(ReadGraph graph, Resource resource) throws Exception {
+ public static String prettyPrintResource(ReadGraph graph, Resource resource, boolean ignoreIdentifiers) throws Exception {
TransferableGraphSource source = makeTGSource(graph, resource);
TransferableGraph1 tg = TransferableGraphs.create(graph, source);
GraphRefactoringUtils.fixOntologyExport(tg);
- return PrettyPrintTG.print(tg);
+ System.out.println("Printing resoure " + graph.getURI(resource));
+ return PrettyPrintTG.print(tg, ignoreIdentifiers);
}
- public static Resource getPossibleAssertedObject(ReadGraph graph, Resource resource, Resource predicate) throws DatabaseException {
- Resource result = null;
- for(Resource type : graph.getPrincipalTypes(resource)) {
- Collection<Resource> rs = graph.getAssertedObjects(type, predicate);
- if(rs.size() > 1) return null;
- if(rs.size() == 1) {
- Resource ass = rs.iterator().next();
- if (result != null && !result.equals(ass)) return null;
- result = ass;
- }
- }
- return result;
+ /**
+ * Adds a random {@link GUID} as a value for <code>L0.identifier</code>
+ *
+ * @param graph
+ * @param component
+ * for which the identifier is added
+ * @throws DatabaseException
+ */
+ public static void addL0Identifier(WriteGraph graph, Resource component) throws DatabaseException {
+ Layer0 L0 = Layer0.getInstance(graph);
+ graph.addLiteral(component, L0.identifier, L0.identifier_Inverse, L0.GUID, GUID.random(), GUID.BINDING);
}
-
}