--- /dev/null
+/*******************************************************************************\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