]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/VariableOrResource.java
Playground for Antti.
[simantics/platform.git] / bundles / org.simantics.db.layer0 / src / org / simantics / db / layer0 / variable / VariableOrResource.java
diff --git a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/VariableOrResource.java b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/VariableOrResource.java
new file mode 100644 (file)
index 0000000..cdcfd8b
--- /dev/null
@@ -0,0 +1,23 @@
+package org.simantics.db.layer0.variable;
+
+import org.simantics.db.Resource;
+
+public interface VariableOrResource {
+
+    public static VariableOrResource make(Resource value) {
+        return new ResourceX(value);
+    }
+    
+    public static VariableOrResource make(Variable value) {
+        return new VariableX(value);
+    }
+
+    public static VariableOrResource make(Object value) {
+        if(value instanceof Resource)
+            return make((Resource)value);
+        if(value instanceof Variable)
+            return make((Variable)value);
+        throw new IllegalArgumentException("VariableOrResource acccepts only Variable or Resource, got " + value + " with class " + value.getClass().getName());
+    }
+
+}