1 /*******************************************************************************
\r
2 * Copyright (c) 2007 VTT Technical Research Centre of Finland and others.
\r
3 * All rights reserved. This program and the accompanying materials
\r
4 * are made available under the terms of the Eclipse Public License v1.0
\r
5 * which accompanies this distribution, and is available at
\r
6 * http://www.eclipse.org/legal/epl-v10.html
\r
9 * VTT Technical Research Centre of Finland - initial API and implementation
\r
10 *******************************************************************************/
\r
11 package org.simantics.processeditor.stubs;
\r
13 import org.simantics.db.Resource;
\r
14 import org.simantics.db.ResourceContainer;
\r
15 import org.simantics.db.Statement;
\r
16 import org.simantics.db.Graph;
\r
17 import org.simantics.db.ResourceContainer;
\r
18 import org.simantics.layer0.utils.ResourceDoesNotSatisfyAssumptionException;
\r
19 import org.simantics.layer0.utils.IEntity;
\r
20 import org.simantics.layer0.utils.internal.Entity;
\r
21 import org.simantics.layer0.utils.instantiation.InstanceFactory;
\r
22 import java.util.Collection;
\r
23 import java.util.ArrayList;
\r
25 public class DualInlineControlPoint extends Entity implements IDualInlineControlPoint {
\r
27 public DualInlineControlPoint(Graph graph, ResourceContainer resourceContainer) {
\r
28 super(graph, resourceContainer.getResource());
\r
31 public DualInlineControlPoint(IEntity entity) {
\r
32 super(entity.getGraph(), entity.getResource());
\r
35 public Graph getGraph() {
\r
39 public static DualInlineControlPoint createDefault(Graph graph) {
\r
40 return new DualInlineControlPoint(graph, InstanceFactory.instantiate(graph, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).DualInlineControlPoint));
\r
43 public static boolean isInstance(IEntity entity) {
\r
44 Graph graph = entity.getGraph();
\r
45 Resource type = org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).DualInlineControlPoint;
\r
46 return graph.isInstanceOf(entity.getResource(), type);
\r
50 public Resource getResource() {
\r
54 public org.simantics.processeditor.stubs.FixedLengthControlPoint toFixedLengthControlPoint() {
\r
55 return new org.simantics.processeditor.stubs.FixedLengthControlPoint(graph, resource);
\r
58 public DualInlineControlPoint toDualInlineControlPoint() {
\r
62 public org.simantics.processeditor.stubs.InlineControlPoint toInlineControlPoint() {
\r
63 return new org.simantics.processeditor.stubs.InlineControlPoint(graph, resource);
\r
66 public org.simantics.processeditor.stubs.PipeControlPoint toPipeControlPoint() {
\r
67 return new org.simantics.processeditor.stubs.PipeControlPoint(graph, resource);
\r
70 public org.simantics.proconf.g3d.stubs.Position getLocalPosition() {
\r
71 Statement[] statements = graph.getStatements(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasLocalPosition);
\r
72 if(statements.length != 1)
\r
73 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");
\r
74 return new org.simantics.proconf.g3d.stubs.Position(graph, statements[0].getObject());
\r
77 public void addLocalPosition(ResourceContainer v) {
\r
78 graph.addStatement(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasLocalPosition, v.getResource());
\r
81 public void setLocalPosition(ResourceContainer v) {
\r
82 Resource predicate = org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasLocalPosition;
\r
83 graph.removeStatements(resource, predicate);
\r
84 graph.addStatement(resource, predicate, v.getResource());
\r
87 public org.simantics.proconf.g3d.stubs.Position getWorldPosition() {
\r
88 Statement[] statements = graph.getStatements(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasWorldPosition);
\r
89 if(statements.length != 1)
\r
90 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");
\r
91 return new org.simantics.proconf.g3d.stubs.Position(graph, statements[0].getObject());
\r
94 public void addWorldPosition(ResourceContainer v) {
\r
95 graph.addStatement(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasWorldPosition, v.getResource());
\r
98 public void setWorldPosition(ResourceContainer v) {
\r
99 Resource predicate = org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasWorldPosition;
\r
100 graph.removeStatements(resource, predicate);
\r
101 graph.addStatement(resource, predicate, v.getResource());
\r
104 public org.simantics.proconf.g3d.stubs.Orientation getLocalOrientation() {
\r
105 Statement[] statements = graph.getStatements(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasLocalOrientation);
\r
106 if(statements.length != 1)
\r
107 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");
\r
108 return new org.simantics.proconf.g3d.stubs.Orientation(graph, statements[0].getObject());
\r
111 public void addLocalOrientation(ResourceContainer v) {
\r
112 graph.addStatement(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasLocalOrientation, v.getResource());
\r
115 public void setLocalOrientation(ResourceContainer v) {
\r
116 Resource predicate = org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasLocalOrientation;
\r
117 graph.removeStatements(resource, predicate);
\r
118 graph.addStatement(resource, predicate, v.getResource());
\r
121 public org.simantics.proconf.g3d.stubs.Orientation getWorldOrientation() {
\r
122 Statement[] statements = graph.getStatements(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasWorldOrientation);
\r
123 if(statements.length != 1)
\r
124 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");
\r
125 return new org.simantics.proconf.g3d.stubs.Orientation(graph, statements[0].getObject());
\r
128 public void addWorldOrientation(ResourceContainer v) {
\r
129 graph.addStatement(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasWorldOrientation, v.getResource());
\r
132 public void setWorldOrientation(ResourceContainer v) {
\r
133 Resource predicate = org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasWorldOrientation;
\r
134 graph.removeStatements(resource, predicate);
\r
135 graph.addStatement(resource, predicate, v.getResource());
\r
138 public org.simantics.processeditor.stubs.PipeControlPoint getNext() {
\r
139 Statement[] statements = graph.getStatements(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasNext);
\r
140 if(statements.length > 1)
\r
141 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");
\r
142 if(statements.length == 0)
\r
144 return new org.simantics.processeditor.stubs.PipeControlPoint(graph, statements[0].getObject());
\r
147 public void addNext(ResourceContainer v) {
\r
148 graph.addStatement(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasNext, v.getResource());
\r
151 public void setNext(ResourceContainer v) {
\r
152 Resource predicate = org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasNext;
\r
153 graph.removeStatements(resource, predicate);
\r
154 graph.addStatement(resource, predicate, v.getResource());
\r
157 public org.simantics.processeditor.stubs.PipeControlPoint getPrevious() {
\r
158 Statement[] statements = graph.getStatements(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasPrevious);
\r
159 if(statements.length > 1)
\r
160 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");
\r
161 if(statements.length == 0)
\r
163 return new org.simantics.processeditor.stubs.PipeControlPoint(graph, statements[0].getObject());
\r
166 public void addPrevious(ResourceContainer v) {
\r
167 graph.addStatement(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasPrevious, v.getResource());
\r
170 public void setPrevious(ResourceContainer v) {
\r
171 Resource predicate = org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasPrevious;
\r
172 graph.removeStatements(resource, predicate);
\r
173 graph.addStatement(resource, predicate, v.getResource());
\r
176 public double[] getPipeDiameter() {
\r
177 Statement[] statements = graph.getStatements(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasPipeDiameter);
\r
178 if(statements.length != 1)
\r
179 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");
\r
180 return (double[])graph.getValueAsObject(statements[0].getObject());
\r
183 public void setPipeDiameter(Object v) {
\r
184 Resource predicate = org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasPipeDiameter;
\r
185 Collection<Resource> objects = graph.getObjects(resource, predicate);
\r
186 if(objects.size() == 0) {
\r
187 Resource r = graph.newResource();
\r
188 Resource valueType = org.simantics.db.Builtins.getInstance(graph).Double;
\r
189 graph.addStatement(r, graph.getBuiltins().InstanceOf, valueType);
\r
190 graph.setValueAsObject(r, v);
\r
191 graph.addStatement(resource, predicate, r);
\r
193 else if(objects.size() == 1)
\r
194 for(Resource r : objects)
\r
195 graph.setValueAsObject(r, v);
\r
197 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + objects.size() + ") of statements.");
\r
200 public double[] getLength() {
\r
201 Statement[] statements = graph.getStatements(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasLength);
\r
202 if(statements.length != 1)
\r
203 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");
\r
204 return (double[])graph.getValueAsObject(statements[0].getObject());
\r
207 public void setLength(Object v) {
\r
208 Resource predicate = org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasLength;
\r
209 Collection<Resource> objects = graph.getObjects(resource, predicate);
\r
210 if(objects.size() == 0) {
\r
211 Resource r = graph.newResource();
\r
212 Resource valueType = org.simantics.db.Builtins.getInstance(graph).Double;
\r
213 graph.addStatement(r, graph.getBuiltins().InstanceOf, valueType);
\r
214 graph.setValueAsObject(r, v);
\r
215 graph.addStatement(resource, predicate, r);
\r
217 else if(objects.size() == 1)
\r
218 for(Resource r : objects)
\r
219 graph.setValueAsObject(r, v);
\r
221 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + objects.size() + ") of statements.");
\r
224 public double[] getRotationAngle() {
\r
225 Statement[] statements = graph.getStatements(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasRotationAngle);
\r
226 if(statements.length != 1)
\r
227 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");
\r
228 return (double[])graph.getValueAsObject(statements[0].getObject());
\r
231 public void setRotationAngle(Object v) {
\r
232 Resource predicate = org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasRotationAngle;
\r
233 Collection<Resource> objects = graph.getObjects(resource, predicate);
\r
234 if(objects.size() == 0) {
\r
235 Resource r = graph.newResource();
\r
236 Resource valueType = org.simantics.db.Builtins.getInstance(graph).Double;
\r
237 graph.addStatement(r, graph.getBuiltins().InstanceOf, valueType);
\r
238 graph.setValueAsObject(r, v);
\r
239 graph.addStatement(resource, predicate, r);
\r
241 else if(objects.size() == 1)
\r
242 for(Resource r : objects)
\r
243 graph.setValueAsObject(r, v);
\r
245 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + objects.size() + ") of statements.");
\r
248 public Collection<org.simantics.processeditor.stubs.PipeControlPoint> getSubPoint() {
\r
249 Statement[] statements = graph.getStatements(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasSubPoint);
\r
250 Collection<org.simantics.processeditor.stubs.PipeControlPoint> ret = new ArrayList<org.simantics.processeditor.stubs.PipeControlPoint>(statements.length);
\r
251 for(Statement s : statements)
\r
252 ret.add(new org.simantics.processeditor.stubs.PipeControlPoint(graph, s.getObject()));
\r
256 public void addSubPoint(ResourceContainer v) {
\r
257 graph.addStatement(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasSubPoint, v.getResource());
\r
260 public org.simantics.processeditor.stubs.PipeControlPoint getSubPointOf() {
\r
261 Statement[] statements = graph.getStatements(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).SubPointOf);
\r
262 if(statements.length > 1)
\r
263 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");
\r
264 if(statements.length == 0)
\r
266 return new org.simantics.processeditor.stubs.PipeControlPoint(graph, statements[0].getObject());
\r
269 public void addSubPointOf(ResourceContainer v) {
\r
270 graph.addStatement(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).SubPointOf, v.getResource());
\r
273 public void setSubPointOf(ResourceContainer v) {
\r
274 Resource predicate = org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).SubPointOf;
\r
275 graph.removeStatements(resource, predicate);
\r
276 graph.addStatement(resource, predicate, v.getResource());
\r
279 // [Nozzle] | [Pipeline Component]
\r
280 public org.simantics.layer0.utils.IEntity getControlPointOf() {
\r
281 Statement[] statements = graph.getStatements(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).ControlPointOf);
\r
282 if(statements.length > 1)
\r
283 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");
\r
284 if(statements.length == 0)
\r
286 return new Entity(graph, statements[0].getObject());
\r
289 // [Nozzle] | [Pipeline Component]
\r
290 public void addControlPointOf(ResourceContainer v) {
\r
291 graph.addStatement(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).ControlPointOf, v.getResource());
\r
294 // [Nozzle] | [Pipeline Component]
\r
295 public void setControlPointOf(ResourceContainer v) {
\r
296 Resource predicate = org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).ControlPointOf;
\r
297 graph.removeStatements(resource, predicate);
\r
298 graph.addStatement(resource, predicate, v.getResource());
\r
301 public org.simantics.processeditor.stubs.PipeRun getControlPointOfPipeRun() {
\r
302 Statement[] statements = graph.getStatements(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).ControlPointOfPipeRun);
\r
303 if(statements.length > 1)
\r
304 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");
\r
305 if(statements.length == 0)
\r
307 return new org.simantics.processeditor.stubs.PipeRun(graph, statements[0].getObject());
\r
310 public void addControlPointOfPipeRun(ResourceContainer v) {
\r
311 graph.addStatement(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).ControlPointOfPipeRun, v.getResource());
\r
314 public void setControlPointOfPipeRun(ResourceContainer v) {
\r
315 Resource predicate = org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).ControlPointOfPipeRun;
\r
316 graph.removeStatements(resource, predicate);
\r
317 graph.addStatement(resource, predicate, v.getResource());
\r