]> gerrit.simantics Code Review - simantics/platform.git/commitdiff
Add InvertBasicExpressionVisitor.parseInvertibleExpression
authorTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Mon, 8 Nov 2021 10:41:33 +0000 (12:41 +0200)
committerTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Mon, 8 Nov 2021 10:41:33 +0000 (12:41 +0200)
gitlab #770

bundles/org.simantics.modeling/src/org/simantics/modeling/InvertBasicExpressionVisitor.java

index 6293cbac9fd7d9c9fe3c6989e33ac368b5784fe5..e390e19a24effee52844fb557522f7209840954f 100644 (file)
@@ -105,11 +105,10 @@ public class InvertBasicExpressionVisitor extends InvertBasicExpressionVisitorBa
     }
 
     @SuppressWarnings("unchecked")
-    private static Triple<Double, Double, String> possibleInvertibleExpression(ReadGraph graph, Variable base, String expression) throws DatabaseException {
-        if (base == null || expression == null || expression.isEmpty())
+    private static Triple<Double, Double, String> possibleInvertibleExpression(String expression) {
+        if (expression == null || expression.isEmpty())
             return null;
         InvertBasicExpressionVisitor visitor = new InvertBasicExpressionVisitor();
-        //System.out.println("invert : " + expression + " -> " + replaced(expression) + " for " + base.getURI(graph));
         Expressions.evaluate(replaced(expression), visitor);
         Object result = visitor.getResult();
         if (result instanceof Triple)
@@ -117,6 +116,21 @@ public class InvertBasicExpressionVisitor extends InvertBasicExpressionVisitorBa
         return null;
     }
 
+    public static Triple<Double, Double, String> parseInvertibleExpression(String expression) {
+        Triple<Double, Double, String> data = possibleInvertibleExpression(expression);
+        if (data == null)
+            return null;
+        String key = data.third.replace(MAGIC, ".");
+        return Triple.make(data.first, data.second, key);
+    }
+
+    private static Triple<Double, Double, String> possibleInvertibleExpression(ReadGraph graph, Variable base, String expression) throws DatabaseException {
+        if (base == null)
+            return null;
+        //System.out.println("invert : " + expression + " -> " + replaced(expression) + " for " + base.getURI(graph));
+        return possibleInvertibleExpression(expression);
+    }
+
     public static Variable possibleInvertibleExpressionReferencedProperty(ReadGraph graph, Variable base, String expression) throws DatabaseException {
         Triple<Double, Double, String> data = possibleInvertibleExpression(graph, base, expression);
         if (data == null)