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