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