]> gerrit.simantics Code Review - simantics/platform.git/commitdiff
Added proper equals() implementations for validation compilation request 11/2711/1
authorReino Ruusu <reino.ruusu@semantum.fi>
Mon, 25 Feb 2019 15:51:59 +0000 (17:51 +0200)
committerReino Ruusu <reino.ruusu@semantum.fi>
Mon, 25 Feb 2019 16:12:06 +0000 (18:12 +0200)
Fix to use of old value from cache while validating derived properties.

gitlab #252

Change-Id: I2adf76401dac90ddecc0bf2b3c222da6e242c2d2

bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/componentTypeEditor/DerivedPropertiesSection.java

index 0d6ae80d88004f06079b87795a8c9c192641fc50..67acda962e65aa8fe7d9400f65a3a060dec5b924 100644 (file)
@@ -324,12 +324,7 @@ public class DerivedPropertiesSection implements ComponentTypeViewerSection {
         SCLContext sclContext = SCLContext.getCurrent();
         Object oldGraph = sclContext.get("graph");
         try {
-            CompileSCLMonitorRequest compileSCLMonitorRequest = new CompileSCLMonitorRequest(graph, context) {
-                @Override
-                protected String getExpressionText(ReadGraph graph) throws DatabaseException {
-                    return expression;
-                }
-            };
+            CompileSCLMonitorRequest compileSCLMonitorRequest = new ValidationCompilationRequest(graph, context, expression);
             Function1<Variable,Object> exp = graph.syncRequest(compileSCLMonitorRequest);
             sclContext.put("graph", graph);
             //return exp.apply(context.getParent(graph));
@@ -416,4 +411,29 @@ public class DerivedPropertiesSection implements ComponentTypeViewerSection {
         return 100.0;
     }
 
+    private static final class ValidationCompilationRequest extends CompileSCLMonitorRequest {
+        private final String expression;
+    
+        private ValidationCompilationRequest(ReadGraph graph, Variable context, String expression)
+                throws DatabaseException {
+            super(graph, context);
+            this.expression = expression;
+        }
+    
+        @Override
+        protected String getExpressionText(ReadGraph graph) throws DatabaseException {
+            return expression;
+        }
+    
+        @Override
+        public int hashCode() {
+            return super.hashCode() + 37 * expression.hashCode();
+        }
+    
+        @Override
+        public boolean equals(Object obj) {
+            return super.equals(obj) && ((ValidationCompilationRequest)obj).expression.equals(expression);
+        }
+    }
+
 }
\ No newline at end of file