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
10 * VTT Technical Research Centre of Finland - initial API and implementation
\r
11 *******************************************************************************/
\r
12 package org.simantics.equation.stubs;
\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
21 public class EquationResource {
\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
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
85 public static Resource getResourceOrNull(ReadGraph graph, String uri) {
\r
87 return graph.getResource(uri);
\r
88 } catch(DatabaseException e) {
\r
89 System.err.println(e.getMessage());
\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
126 public static EquationResource getInstance(ReadGraph graph) {
\r
127 Session session = graph.getSession();
\r
128 EquationResource ret = session.peekService(EquationResource.class);
\r
130 ret = new EquationResource(graph);
\r
131 session.registerService(EquationResource.class, ret);
\r
136 public static EquationResource getInstance(Session session) throws DatabaseException {
\r
137 EquationResource ret = session.peekService(EquationResource.class);
\r
139 ret = session.syncRequest(new Read<EquationResource>() {
\r
140 public EquationResource perform(ReadGraph graph) throws DatabaseException {
\r
141 return new EquationResource(graph);
\r
144 session.registerService(EquationResource.class, ret);
\r