]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/StandardGraphPropertyVariable.java
Implement equals/hashCode for PropertyInfo
[simantics/platform.git] / bundles / org.simantics.db.layer0 / src / org / simantics / db / layer0 / variable / StandardGraphPropertyVariable.java
index 9b0befc78442fa47d02022ca9e8863f01d1b5647..b7eaf075edea1c1e051981662954629f70673cf1 100644 (file)
@@ -11,6 +11,7 @@ import org.simantics.databoard.accessor.reference.ChildReference;
 import org.simantics.databoard.binding.Binding;
 import org.simantics.databoard.binding.impl.ObjectVariantBinding;
 import org.simantics.databoard.type.Datatype;
+import org.simantics.db.DevelopmentKeys;
 import org.simantics.db.ReadGraph;
 import org.simantics.db.Resource;
 import org.simantics.db.WriteGraph;
@@ -19,7 +20,6 @@ import org.simantics.db.common.validation.L0Validations;
 import org.simantics.db.exception.DatabaseException;
 import org.simantics.db.exception.DatatypeNotFoundException;
 import org.simantics.db.exception.ValidationException;
-import org.simantics.db.exception.VariableException;
 import org.simantics.db.layer0.exception.InvalidVariableException;
 import org.simantics.db.layer0.exception.MissingVariableValueException;
 import org.simantics.db.layer0.exception.PendingVariableException;
@@ -35,12 +35,13 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class StandardGraphPropertyVariable extends AbstractPropertyVariable {
+
     private static final Logger LOGGER = LoggerFactory.getLogger(StandardGraphPropertyVariable.class);
-    
-       protected static final PropertyInfo NO_PROPERTY = new PropertyInfo(null, null,
-                       false, Collections.<String> emptySet(), null, null, null, null, null, null,
-                       Collections.<String, Pair<Resource, ChildReference>> emptyMap(),
-                       null, false);
+
+    protected static final PropertyInfo NO_PROPERTY = new PropertyInfo(null, null, true,
+            false, false, Collections.<String> emptySet(), null, null, null, null, null, null,
+            Collections.<String, Pair<Resource, ChildReference>> emptyMap(),
+            null, false);
 
        final public Variable parent;
        final public Resource parentResource;
@@ -122,10 +123,12 @@ public class StandardGraphPropertyVariable extends AbstractPropertyVariable {
        public <T> T getValue(ReadGraph graph) throws DatabaseException {
                
                if(Development.DEVELOPMENT) {
-                       String error = L0Validations.checkValueType(graph, parentResource, property.predicate);
-                       if(error != null) {
-                           LOGGER.error(error);
-                               //throw new ValidationException(error);
+                       if(Development.<Boolean>getProperty(DevelopmentKeys.L0_VALIDATION, Bindings.BOOLEAN)) {
+                               String error = L0Validations.checkValueType(graph, parentResource, property.predicate);
+                               if(error != null) {
+                                   LOGGER.error(error);
+                                       throw new ValidationException(error);
+                               }
                        }
                }
                
@@ -141,10 +144,12 @@ public class StandardGraphPropertyVariable extends AbstractPropertyVariable {
                        return getValue(graph);         
 
                if(Development.DEVELOPMENT) {
-                       String error = L0Validations.checkValueType(graph, parentResource, property.predicate);
-                       if(error != null) {
-                           LOGGER.error(error);
-                               throw new ValidationException(error);
+                       if(Development.<Boolean>getProperty(DevelopmentKeys.L0_VALIDATION, Bindings.BOOLEAN)) {
+                               String error = L0Validations.checkValueType(graph, parentResource, property.predicate);
+                               if(error != null) {
+                                       LOGGER.error(error);
+                                       throw new ValidationException(error);
+                               }
                        }
                }
         
@@ -166,13 +171,10 @@ public class StandardGraphPropertyVariable extends AbstractPropertyVariable {
                if(represents == null)
                        throw new InvalidVariableException("Variable is not represented by any resource (URI=" + getPossibleURI(graph) + ").");
                return represents;
-//             return graph.getSingleObject(parentResource, property.predicate);
        }
 
        @Override
        public Resource getPossibleRepresents(ReadGraph graph) throws DatabaseException {
-//        if(parentResource == null) return null;
-//             return graph.getPossibleObject(parentResource, property.predicate);
                return represents;
        }
 
@@ -180,10 +182,12 @@ public class StandardGraphPropertyVariable extends AbstractPropertyVariable {
        public void setValue(WriteGraph graph, Object value, Binding binding) throws DatabaseException {
                
                if(Development.DEVELOPMENT) {
-                       String error = L0Validations.checkValueType(graph, parentResource, property.predicate);
-                       if(error != null) {
-                           LOGGER.error(error);
-                               //throw new ValidationException(error);
+                       if(Development.<Boolean>getProperty(DevelopmentKeys.L0_VALIDATION, Bindings.BOOLEAN)) {
+                               String error = L0Validations.checkValueType(graph, parentResource, property.predicate);
+                               if(error != null) {
+                                       LOGGER.error(error);
+                                       throw new ValidationException(error);
+                               }
                        }
                }
                
@@ -195,10 +199,12 @@ public class StandardGraphPropertyVariable extends AbstractPropertyVariable {
        public void setValue(WriteGraph graph, Object value) throws DatabaseException {
                
                if(Development.DEVELOPMENT) {
-                       String error = L0Validations.checkValueType(graph, parentResource, property.predicate);
-                       if(error != null) {
-                           LOGGER.error(error);
-                               throw new ValidationException(error);
+                       if(Development.<Boolean>getProperty(DevelopmentKeys.L0_VALIDATION, Bindings.BOOLEAN)) {
+                               String error = L0Validations.checkValueType(graph, parentResource, property.predicate);
+                               if(error != null) {
+                                       LOGGER.error(error);
+                                       throw new ValidationException(error);
+                               }
                        }
                }
                
@@ -218,16 +224,6 @@ public class StandardGraphPropertyVariable extends AbstractPropertyVariable {
 
        @Override
        public Datatype getDatatype(ReadGraph graph) throws DatabaseException {
-//<<<<<<< .mine
-//             
-//     Binding binding = getPossibleDefaultBinding(graph);
-//        if(binding != null) return binding.type();
-//
-//             Variant vt = getVariantValue(graph);
-//             binding = vt.getBinding();
-//             if(binding == null) throw new DatabaseException("No binding in Variant with value " + vt.getValue());
-//             return binding.type();
-//=======
                Datatype type;
                try {                   
                        type = getValueAccessor(graph).getDatatype(graph, this);
@@ -244,7 +240,6 @@ public class StandardGraphPropertyVariable extends AbstractPropertyVariable {
                }
                
                return type;
-//>>>>>>> .r30794
                
        }