]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.equation/src/org/simantics/equation/stubs/EquationResource.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.equation / src / org / simantics / equation / stubs / EquationResource.java
diff --git a/bundles/org.simantics.equation/src/org/simantics/equation/stubs/EquationResource.java b/bundles/org.simantics.equation/src/org/simantics/equation/stubs/EquationResource.java
new file mode 100644 (file)
index 0000000..dacde9f
--- /dev/null
@@ -0,0 +1,150 @@
+/*******************************************************************************\r
+ * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
+ * in Industry THTH ry.\r
+ * All rights reserved. This program and the accompanying materials\r
+ * are made available under the terms of the Eclipse Public License v1.0\r
+ * which accompanies this distribution, and is available at\r
+ * http://www.eclipse.org/legal/epl-v10.html\r
+ *\r
+ * Contributors:\r
+ *     VTT Technical Research Centre of Finland - initial API and implementation\r
+ *******************************************************************************/\r
+package org.simantics.equation.stubs;\r
+\r
+\r
+import org.simantics.db.Resource;\r
+import org.simantics.db.ReadGraph;\r
+import org.simantics.db.request.Read;\r
+import org.simantics.db.Session;\r
+import org.simantics.db.exception.DatabaseException;\r
+\r
+public class EquationResource {\r
+    \r
+    public final Resource Addition;\r
+    public final Resource AggregateExpression;\r
+    public final Resource Assign;\r
+    public final Resource Division;\r
+    public final Resource DoubleAssign;\r
+    public final Resource DoubleToIntegerAssign;\r
+    public final Resource Element;\r
+    public final Resource ElementExpression;\r
+    public final Resource Equation;\r
+    public final Resource Expression;\r
+    public final Resource HasA;\r
+    public final Resource HasB;\r
+    public final Resource HasC;\r
+    public final Resource HasCoefficient;\r
+    public final Resource HasElementList;\r
+    public final Resource HasSource;\r
+    public final Resource HasTarget;\r
+    public final Resource HasVariable;\r
+    public final Resource IntegerAssign;\r
+    public final Resource Multiplication;\r
+    public final Resource Number;\r
+    public final Resource Operator;\r
+    public final Resource ProductExpression;\r
+    public final Resource ScalarPolynomial;\r
+    public final Resource SecondOrderScalarPolynomial;\r
+    public final Resource Subtraction;\r
+    public final Resource SumExpression;\r
+    public final Resource SystemOfEquations;\r
+    public final Resource SystemOfExpressions;\r
+    \r
+    public static class URIs {\r
+        public static final String Addition = "http://www.simantics.org/Equation-1.0/Types/Addition";\r
+        public static final String AggregateExpression = "http://www.simantics.org/Equation-1.0/Types/AggregateExpression";\r
+        public static final String Assign = "http://www.simantics.org/Equation-1.0/Types/Assign";\r
+        public static final String Division = "http://www.simantics.org/Equation-1.0/Types/Division";\r
+        public static final String DoubleAssign = "http://www.simantics.org/Equation-1.0/Types/DoubleAssign";\r
+        public static final String DoubleToIntegerAssign = "http://www.simantics.org/Equation-1.0/Types/DoubleToIntegerAssign";\r
+        public static final String Element = "http://www.simantics.org/Equation-1.0/Types/Element";\r
+        public static final String ElementExpression = "http://www.simantics.org/Equation-1.0/Types/ElementExpression";\r
+        public static final String Equation = "http://www.simantics.org/Equation-1.0/Types/Equation";\r
+        public static final String Expression = "http://www.simantics.org/Equation-1.0/Types/Expression";\r
+        public static final String HasA = "http://www.simantics.org/Equation-1.0/Relations/HasA";\r
+        public static final String HasB = "http://www.simantics.org/Equation-1.0/Relations/HasB";\r
+        public static final String HasC = "http://www.simantics.org/Equation-1.0/Relations/HasC";\r
+        public static final String HasCoefficient = "http://www.simantics.org/Equation-1.0/Relations/HasCoefficient";\r
+        public static final String HasElementList = "http://www.simantics.org/Equation-1.0/Relations/HasElementList";\r
+        public static final String HasSource = "http://www.simantics.org/Equation-1.0/Relations/HasSource";\r
+        public static final String HasTarget = "http://www.simantics.org/Equation-1.0/Relations/HasTarget";\r
+        public static final String HasVariable = "http://www.simantics.org/Equation-1.0/Relations/HasVariable";\r
+        public static final String IntegerAssign = "http://www.simantics.org/Equation-1.0/Types/IntegerAssign";\r
+        public static final String Multiplication = "http://www.simantics.org/Equation-1.0/Types/Multiplication";\r
+        public static final String Number = "http://www.simantics.org/Equation-1.0/Types/Number";\r
+        public static final String Operator = "http://www.simantics.org/Equation-1.0/Types/Operator";\r
+        public static final String ProductExpression = "http://www.simantics.org/Equation-1.0/Types/ProductExpression";\r
+        public static final String ScalarPolynomial = "http://www.simantics.org/Equation-1.0/Types/ScalarPolynomial";\r
+        public static final String SecondOrderScalarPolynomial = "http://www.simantics.org/Equation-1.0/Types/SecondOrderScalarPolynomial";\r
+        public static final String Subtraction = "http://www.simantics.org/Equation-1.0/Types/Subtraction";\r
+        public static final String SumExpression = "http://www.simantics.org/Equation-1.0/Types/SumExpression";\r
+        public static final String SystemOfEquations = "http://www.simantics.org/Equation-1.0/Types/SystemOfEquations";\r
+        public static final String SystemOfExpressions = "http://www.simantics.org/Equation-1.0/Types/SystemOfExpressions";\r
+    }\r
+    \r
+    public static Resource getResourceOrNull(ReadGraph graph, String uri) {\r
+        try {\r
+            return graph.getResource(uri);\r
+        } catch(DatabaseException e) {\r
+            System.err.println(e.getMessage());\r
+            return null;\r
+        }\r
+    }\r
+    \r
+    public EquationResource(ReadGraph graph) {\r
+        Addition = getResourceOrNull(graph, URIs.Addition);\r
+        AggregateExpression = getResourceOrNull(graph, URIs.AggregateExpression);\r
+        Assign = getResourceOrNull(graph, URIs.Assign);\r
+        Division = getResourceOrNull(graph, URIs.Division);\r
+        DoubleAssign = getResourceOrNull(graph, URIs.DoubleAssign);\r
+        DoubleToIntegerAssign = getResourceOrNull(graph, URIs.DoubleToIntegerAssign);\r
+        Element = getResourceOrNull(graph, URIs.Element);\r
+        ElementExpression = getResourceOrNull(graph, URIs.ElementExpression);\r
+        Equation = getResourceOrNull(graph, URIs.Equation);\r
+        Expression = getResourceOrNull(graph, URIs.Expression);\r
+        HasA = getResourceOrNull(graph, URIs.HasA);\r
+        HasB = getResourceOrNull(graph, URIs.HasB);\r
+        HasC = getResourceOrNull(graph, URIs.HasC);\r
+        HasCoefficient = getResourceOrNull(graph, URIs.HasCoefficient);\r
+        HasElementList = getResourceOrNull(graph, URIs.HasElementList);\r
+        HasSource = getResourceOrNull(graph, URIs.HasSource);\r
+        HasTarget = getResourceOrNull(graph, URIs.HasTarget);\r
+        HasVariable = getResourceOrNull(graph, URIs.HasVariable);\r
+        IntegerAssign = getResourceOrNull(graph, URIs.IntegerAssign);\r
+        Multiplication = getResourceOrNull(graph, URIs.Multiplication);\r
+        Number = getResourceOrNull(graph, URIs.Number);\r
+        Operator = getResourceOrNull(graph, URIs.Operator);\r
+        ProductExpression = getResourceOrNull(graph, URIs.ProductExpression);\r
+        ScalarPolynomial = getResourceOrNull(graph, URIs.ScalarPolynomial);\r
+        SecondOrderScalarPolynomial = getResourceOrNull(graph, URIs.SecondOrderScalarPolynomial);\r
+        Subtraction = getResourceOrNull(graph, URIs.Subtraction);\r
+        SumExpression = getResourceOrNull(graph, URIs.SumExpression);\r
+        SystemOfEquations = getResourceOrNull(graph, URIs.SystemOfEquations);\r
+        SystemOfExpressions = getResourceOrNull(graph, URIs.SystemOfExpressions);\r
+    }\r
+    \r
+    public static EquationResource getInstance(ReadGraph graph) {\r
+        Session session = graph.getSession();\r
+        EquationResource ret = session.peekService(EquationResource.class);\r
+        if(ret == null) {\r
+            ret = new EquationResource(graph);\r
+            session.registerService(EquationResource.class, ret);\r
+        }\r
+        return ret;\r
+    }\r
+    \r
+    public static EquationResource getInstance(Session session) throws DatabaseException {\r
+        EquationResource ret = session.peekService(EquationResource.class);\r
+        if(ret == null) {\r
+            ret = session.syncRequest(new Read<EquationResource>() {\r
+                public EquationResource perform(ReadGraph graph) throws DatabaseException {\r
+                    return new EquationResource(graph);\r
+                }\r
+            });\r
+            session.registerService(EquationResource.class, ret);\r
+        }\r
+        return ret;\r
+    }\r
+    \r
+}\r
+\r