]> gerrit.simantics Code Review - simantics/platform.git/blob - 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
1 /*******************************************************************************\r
2  * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
3  * in Industry THTH ry.\r
4  * All rights reserved. This program and the accompanying materials\r
5  * are made available under the terms of the Eclipse Public License v1.0\r
6  * which accompanies this distribution, and is available at\r
7  * http://www.eclipse.org/legal/epl-v10.html\r
8  *\r
9  * Contributors:\r
10  *     VTT Technical Research Centre of Finland - initial API and implementation\r
11  *******************************************************************************/\r
12 package org.simantics.equation.stubs;\r
13 \r
14 \r
15 import org.simantics.db.Resource;\r
16 import org.simantics.db.ReadGraph;\r
17 import org.simantics.db.request.Read;\r
18 import org.simantics.db.Session;\r
19 import org.simantics.db.exception.DatabaseException;\r
20 \r
21 public class EquationResource {\r
22     \r
23     public final Resource Addition;\r
24     public final Resource AggregateExpression;\r
25     public final Resource Assign;\r
26     public final Resource Division;\r
27     public final Resource DoubleAssign;\r
28     public final Resource DoubleToIntegerAssign;\r
29     public final Resource Element;\r
30     public final Resource ElementExpression;\r
31     public final Resource Equation;\r
32     public final Resource Expression;\r
33     public final Resource HasA;\r
34     public final Resource HasB;\r
35     public final Resource HasC;\r
36     public final Resource HasCoefficient;\r
37     public final Resource HasElementList;\r
38     public final Resource HasSource;\r
39     public final Resource HasTarget;\r
40     public final Resource HasVariable;\r
41     public final Resource IntegerAssign;\r
42     public final Resource Multiplication;\r
43     public final Resource Number;\r
44     public final Resource Operator;\r
45     public final Resource ProductExpression;\r
46     public final Resource ScalarPolynomial;\r
47     public final Resource SecondOrderScalarPolynomial;\r
48     public final Resource Subtraction;\r
49     public final Resource SumExpression;\r
50     public final Resource SystemOfEquations;\r
51     public final Resource SystemOfExpressions;\r
52     \r
53     public static class URIs {\r
54         public static final String Addition = "http://www.simantics.org/Equation-1.0/Types/Addition";\r
55         public static final String AggregateExpression = "http://www.simantics.org/Equation-1.0/Types/AggregateExpression";\r
56         public static final String Assign = "http://www.simantics.org/Equation-1.0/Types/Assign";\r
57         public static final String Division = "http://www.simantics.org/Equation-1.0/Types/Division";\r
58         public static final String DoubleAssign = "http://www.simantics.org/Equation-1.0/Types/DoubleAssign";\r
59         public static final String DoubleToIntegerAssign = "http://www.simantics.org/Equation-1.0/Types/DoubleToIntegerAssign";\r
60         public static final String Element = "http://www.simantics.org/Equation-1.0/Types/Element";\r
61         public static final String ElementExpression = "http://www.simantics.org/Equation-1.0/Types/ElementExpression";\r
62         public static final String Equation = "http://www.simantics.org/Equation-1.0/Types/Equation";\r
63         public static final String Expression = "http://www.simantics.org/Equation-1.0/Types/Expression";\r
64         public static final String HasA = "http://www.simantics.org/Equation-1.0/Relations/HasA";\r
65         public static final String HasB = "http://www.simantics.org/Equation-1.0/Relations/HasB";\r
66         public static final String HasC = "http://www.simantics.org/Equation-1.0/Relations/HasC";\r
67         public static final String HasCoefficient = "http://www.simantics.org/Equation-1.0/Relations/HasCoefficient";\r
68         public static final String HasElementList = "http://www.simantics.org/Equation-1.0/Relations/HasElementList";\r
69         public static final String HasSource = "http://www.simantics.org/Equation-1.0/Relations/HasSource";\r
70         public static final String HasTarget = "http://www.simantics.org/Equation-1.0/Relations/HasTarget";\r
71         public static final String HasVariable = "http://www.simantics.org/Equation-1.0/Relations/HasVariable";\r
72         public static final String IntegerAssign = "http://www.simantics.org/Equation-1.0/Types/IntegerAssign";\r
73         public static final String Multiplication = "http://www.simantics.org/Equation-1.0/Types/Multiplication";\r
74         public static final String Number = "http://www.simantics.org/Equation-1.0/Types/Number";\r
75         public static final String Operator = "http://www.simantics.org/Equation-1.0/Types/Operator";\r
76         public static final String ProductExpression = "http://www.simantics.org/Equation-1.0/Types/ProductExpression";\r
77         public static final String ScalarPolynomial = "http://www.simantics.org/Equation-1.0/Types/ScalarPolynomial";\r
78         public static final String SecondOrderScalarPolynomial = "http://www.simantics.org/Equation-1.0/Types/SecondOrderScalarPolynomial";\r
79         public static final String Subtraction = "http://www.simantics.org/Equation-1.0/Types/Subtraction";\r
80         public static final String SumExpression = "http://www.simantics.org/Equation-1.0/Types/SumExpression";\r
81         public static final String SystemOfEquations = "http://www.simantics.org/Equation-1.0/Types/SystemOfEquations";\r
82         public static final String SystemOfExpressions = "http://www.simantics.org/Equation-1.0/Types/SystemOfExpressions";\r
83     }\r
84     \r
85     public static Resource getResourceOrNull(ReadGraph graph, String uri) {\r
86         try {\r
87             return graph.getResource(uri);\r
88         } catch(DatabaseException e) {\r
89             System.err.println(e.getMessage());\r
90             return null;\r
91         }\r
92     }\r
93     \r
94     public EquationResource(ReadGraph graph) {\r
95         Addition = getResourceOrNull(graph, URIs.Addition);\r
96         AggregateExpression = getResourceOrNull(graph, URIs.AggregateExpression);\r
97         Assign = getResourceOrNull(graph, URIs.Assign);\r
98         Division = getResourceOrNull(graph, URIs.Division);\r
99         DoubleAssign = getResourceOrNull(graph, URIs.DoubleAssign);\r
100         DoubleToIntegerAssign = getResourceOrNull(graph, URIs.DoubleToIntegerAssign);\r
101         Element = getResourceOrNull(graph, URIs.Element);\r
102         ElementExpression = getResourceOrNull(graph, URIs.ElementExpression);\r
103         Equation = getResourceOrNull(graph, URIs.Equation);\r
104         Expression = getResourceOrNull(graph, URIs.Expression);\r
105         HasA = getResourceOrNull(graph, URIs.HasA);\r
106         HasB = getResourceOrNull(graph, URIs.HasB);\r
107         HasC = getResourceOrNull(graph, URIs.HasC);\r
108         HasCoefficient = getResourceOrNull(graph, URIs.HasCoefficient);\r
109         HasElementList = getResourceOrNull(graph, URIs.HasElementList);\r
110         HasSource = getResourceOrNull(graph, URIs.HasSource);\r
111         HasTarget = getResourceOrNull(graph, URIs.HasTarget);\r
112         HasVariable = getResourceOrNull(graph, URIs.HasVariable);\r
113         IntegerAssign = getResourceOrNull(graph, URIs.IntegerAssign);\r
114         Multiplication = getResourceOrNull(graph, URIs.Multiplication);\r
115         Number = getResourceOrNull(graph, URIs.Number);\r
116         Operator = getResourceOrNull(graph, URIs.Operator);\r
117         ProductExpression = getResourceOrNull(graph, URIs.ProductExpression);\r
118         ScalarPolynomial = getResourceOrNull(graph, URIs.ScalarPolynomial);\r
119         SecondOrderScalarPolynomial = getResourceOrNull(graph, URIs.SecondOrderScalarPolynomial);\r
120         Subtraction = getResourceOrNull(graph, URIs.Subtraction);\r
121         SumExpression = getResourceOrNull(graph, URIs.SumExpression);\r
122         SystemOfEquations = getResourceOrNull(graph, URIs.SystemOfEquations);\r
123         SystemOfExpressions = getResourceOrNull(graph, URIs.SystemOfExpressions);\r
124     }\r
125     \r
126     public static EquationResource getInstance(ReadGraph graph) {\r
127         Session session = graph.getSession();\r
128         EquationResource ret = session.peekService(EquationResource.class);\r
129         if(ret == null) {\r
130             ret = new EquationResource(graph);\r
131             session.registerService(EquationResource.class, ret);\r
132         }\r
133         return ret;\r
134     }\r
135     \r
136     public static EquationResource getInstance(Session session) throws DatabaseException {\r
137         EquationResource ret = session.peekService(EquationResource.class);\r
138         if(ret == null) {\r
139             ret = session.syncRequest(new Read<EquationResource>() {\r
140                 public EquationResource perform(ReadGraph graph) throws DatabaseException {\r
141                     return new EquationResource(graph);\r
142                 }\r
143             });\r
144             session.registerService(EquationResource.class, ret);\r
145         }\r
146         return ret;\r
147     }\r
148     \r
149 }\r
150 \r