--- /dev/null
+package org.simantics.db.tests.common;
+
+import org.simantics.databoard.Bindings;
+import org.simantics.db.Resource;
+import org.simantics.db.WriteGraph;
+import org.simantics.db.common.request.WriteResultRequest;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.request.WriteResult;
+import org.simantics.layer0.Layer0;
+
+public class Writes {
+
+ public static WriteResult<Resource> newEmpty() throws DatabaseException {
+ return new WriteResultRequest<Resource>() {
+ @Override
+ public Resource perform(WriteGraph g) throws DatabaseException {
+ return g.newResource();
+ }
+ };
+ }
+
+ public static Resource named(WriteGraph graph, String name) throws DatabaseException {
+
+ Layer0 b = Layer0.getInstance(graph);
+
+ Resource result = graph.newResource();
+ graph.claim(result, b.InstanceOf, null, b.Entity);
+ graph.claimLiteral(result, b.HasName, name, Bindings.STRING);
+
+ return result;
+
+ }
+
+ public static Resource assertion(WriteGraph graph, Resource predicate, Resource object) throws DatabaseException {
+
+ Layer0 b = Layer0.getInstance(graph);
+
+ // Assert nonfunctional items
+ Resource ass = graph.newResource();
+ graph.claim(ass, b.InstanceOf, null, b.Assertion);
+ graph.claim(ass, b.HasPredicate, predicate);
+ graph.claim(ass, b.HasObject, object);
+
+ return ass;
+
+ }
+
+ public static Resource string(WriteGraph graph, String string) throws DatabaseException {
+
+ Layer0 b = Layer0.getInstance(graph);
+
+ // Assert nonfunctional items
+ Resource result = graph.newResource();
+ graph.claim(result, b.InstanceOf, null, b.String);
+ graph.claimValue(result, string);
+
+ return result;
+
+ }
+
+}