]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/StandardVariableBuilder.java
Make StandardVariableBuilder singleton
[simantics/platform.git] / bundles / org.simantics.db.layer0 / src / org / simantics / db / layer0 / variable / StandardVariableBuilder.java
index b94c6ce7424639931bf37e192d05b8b613c8dc09..992e3e6990fba165c0fd6c6ca901a479b4521730 100644 (file)
@@ -1,19 +1,30 @@
-package org.simantics.db.layer0.variable;\r
-\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.exception.DatabaseException;\r
-\r
-public class StandardVariableBuilder<Node> implements VariableBuilder<Node> {\r
-\r
-       @Override\r
-       public Variable buildChild(ReadGraph graph, Variable parent, VariableNode<Node> node, Resource child) {\r
-               return new StandardGraphChildVariable(parent, node, child);\r
-       }\r
-\r
-       @Override\r
-       public Variable buildProperty(ReadGraph graph, Variable parent, VariableNode<Node> node, Resource subject, Resource predicate) throws DatabaseException {\r
-               return new StandardGraphPropertyVariable(graph, parent, node, subject, predicate);\r
-       }\r
-\r
-}\r
+package org.simantics.db.layer0.variable;
+
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.exception.DatabaseException;
+
+public class StandardVariableBuilder<Node> implements VariableBuilder<Node> {
+
+    private static StandardVariableBuilder<?> INSTANCE = null;
+
+    private StandardVariableBuilder() {}
+
+    public static synchronized StandardVariableBuilder<?> get() {
+        if(INSTANCE == null) {
+            INSTANCE = new StandardVariableBuilder<>();
+        }
+        return INSTANCE;
+    }
+
+    @Override
+    public Variable buildChild(ReadGraph graph, Variable parent, VariableNode<Node> node, Resource child) {
+        return new StandardGraphChildVariable(parent, node, child);
+    }
+
+    @Override
+    public Variable buildProperty(ReadGraph graph, Variable parent, VariableNode<Node> node, Resource subject, Resource predicate) throws DatabaseException {
+        return new StandardGraphPropertyVariable(graph, parent, node, subject, predicate);
+    }
+
+}