X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.db.layer0%2Fsrc%2Forg%2Fsimantics%2Fdb%2Flayer0%2Futil%2FLayer0Utils.java;h=3da57809ae0f381debf8e6520c017855b2ad7144;hb=61033f112b0a2e643bf8530b99bcf90c64464f30;hp=adc51c16d88ef0f74f1f849f421e9156398c69f1;hpb=738abdf21b01a265c08f40c1e0f601406c58666e;p=simantics%2Fplatform.git
diff --git a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/util/Layer0Utils.java b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/util/Layer0Utils.java
index adc51c16d..3da57809a 100644
--- a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/util/Layer0Utils.java
+++ b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/util/Layer0Utils.java
@@ -54,6 +54,7 @@ import org.simantics.databoard.type.StringType;
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;
@@ -106,6 +107,7 @@ import org.simantics.graph.db.TransferableGraphs;
import org.simantics.graph.diff.Diff;
import org.simantics.graph.diff.TransferableGraphDelta1;
import org.simantics.graph.refactoring.GraphRefactoringUtils;
+import org.simantics.graph.representation.PrettyPrintTG;
import org.simantics.graph.representation.TransferableGraph1;
import org.simantics.layer0.Layer0;
import org.simantics.operation.Layer0X;
@@ -568,16 +570,16 @@ public class Layer0Utils {
}
- 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);
}
@@ -1193,7 +1195,7 @@ public class Layer0Utils {
}
- private static TransferableGraphSource makeTGSource(ReadGraph graph, Resource r) throws DatabaseException {
+ public static TransferableGraphSource makeTGSource(ReadGraph graph, Resource r) throws DatabaseException {
SimanticsClipboardImpl cp = new SimanticsClipboardImpl();
CopyHandler c1 = graph.adapt(r, CopyHandler.class);
@@ -1378,4 +1380,31 @@ public class Layer0Utils {
}
+ 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);
+ System.out.println("Printing resoure " + graph.getURI(resource));
+ return PrettyPrintTG.print(tg, ignoreIdentifiers);
+ }
+
+ /**
+ * Adds a random {@link GUID} as a value for L0.identifier
+ *
+ * @param graph
+ * @param component
+ * for which the identifier is added
+ * @param add
+ * true
to invoke addLiteral, false
to
+ * invoke claimLiteral
+ * @throws DatabaseException
+ */
+ public static void claimNewIdentifier(WriteGraph graph, Resource component, boolean add) throws DatabaseException {
+ Layer0 L0 = Layer0.getInstance(graph);
+ GUID guid = GUID.random();
+ if (add)
+ graph.addLiteral(component, L0.identifier, L0.identifier_Inverse, L0.GUID, guid, GUID.BINDING);
+ else
+ graph.claimLiteral(component, L0.identifier, L0.identifier_Inverse, L0.GUID, guid, GUID.BINDING);
+ }
}