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 EccentricReducer extends Entity implements IEccentricReducer {
\r
27 public EccentricReducer(Graph graph, ResourceContainer resourceContainer) {
\r
28 super(graph, resourceContainer.getResource());
\r
31 public EccentricReducer(IEntity entity) {
\r
32 super(entity.getGraph(), entity.getResource());
\r
35 public Graph getGraph() {
\r
39 public static EccentricReducer createDefault(Graph graph) {
\r
40 return new EccentricReducer(graph, InstanceFactory.instantiate(graph, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).EccentricReducer));
\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).EccentricReducer;
\r
46 return graph.isInstanceOf(entity.getResource(), type);
\r
50 public Resource getResource() {
\r
54 public org.simantics.processeditor.stubs.CodedComponent toCodedComponent() {
\r
55 return new org.simantics.processeditor.stubs.CodedComponent(graph, resource);
\r
58 public org.simantics.processeditor.stubs.OffsetComponent toOffsetComponent() {
\r
59 return new org.simantics.processeditor.stubs.OffsetComponent(graph, resource);
\r
62 public org.simantics.processeditor.stubs.Reducer toReducer() {
\r
63 return new org.simantics.processeditor.stubs.Reducer(graph, resource);
\r
66 public org.simantics.proconf.g3d.stubs.G3DNode toG3DNode() {
\r
67 return new org.simantics.proconf.g3d.stubs.G3DNode(graph, resource);
\r
70 public org.simantics.processeditor.stubs.SizeChangeComponent toSizeChangeComponent() {
\r
71 return new org.simantics.processeditor.stubs.SizeChangeComponent(graph, resource);
\r
74 public org.simantics.processeditor.stubs.InlineComponent toInlineComponent() {
\r
75 return new org.simantics.processeditor.stubs.InlineComponent(graph, resource);
\r
78 public org.simantics.processeditor.stubs.PBSNode toPBSNode() {
\r
79 return new org.simantics.processeditor.stubs.PBSNode(graph, resource);
\r
82 public org.simantics.processeditor.stubs.P3DNode toP3DNode() {
\r
83 return new org.simantics.processeditor.stubs.P3DNode(graph, resource);
\r
86 public org.simantics.processeditor.stubs.DualConnectedComponent toDualConnectedComponent() {
\r
87 return new org.simantics.processeditor.stubs.DualConnectedComponent(graph, resource);
\r
90 public org.simantics.processeditor.stubs.PipelineComponent toPipelineComponent() {
\r
91 return new org.simantics.processeditor.stubs.PipelineComponent(graph, resource);
\r
94 public org.simantics.processeditor.stubs.FixedLengthInlineComponent toFixedLengthInlineComponent() {
\r
95 return new org.simantics.processeditor.stubs.FixedLengthInlineComponent(graph, resource);
\r
98 public org.simantics.processeditor.stubs.LibraryComponent toLibraryComponent() {
\r
99 return new org.simantics.processeditor.stubs.LibraryComponent(graph, resource);
\r
102 public EccentricReducer toEccentricReducer() {
\r
106 public Collection<org.simantics.proconf.g3d.stubs.G3DNode> getChild() {
\r
107 Statement[] statements = graph.getStatements(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasChild);
\r
108 Collection<org.simantics.proconf.g3d.stubs.G3DNode> ret = new ArrayList<org.simantics.proconf.g3d.stubs.G3DNode>(statements.length);
\r
109 for(Statement s : statements)
\r
110 ret.add(new org.simantics.proconf.g3d.stubs.G3DNode(graph, s.getObject()));
\r
114 public void addChild(ResourceContainer v) {
\r
115 graph.addStatement(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasChild, v.getResource());
\r
118 public org.simantics.proconf.g3d.stubs.G3DNode getParent() {
\r
119 Statement[] statements = graph.getStatements(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasParent);
\r
120 if(statements.length > 1)
\r
121 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");
\r
122 if(statements.length == 0)
\r
124 return new org.simantics.proconf.g3d.stubs.G3DNode(graph, statements[0].getObject());
\r
127 public void addParent(ResourceContainer v) {
\r
128 graph.addStatement(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasParent, v.getResource());
\r
131 public void setParent(ResourceContainer v) {
\r
132 Resource predicate = org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasParent;
\r
133 graph.removeStatements(resource, predicate);
\r
134 graph.addStatement(resource, predicate, v.getResource());
\r
137 public org.simantics.proconf.g3d.stubs.Position getLocalPosition() {
\r
138 Statement[] statements = graph.getStatements(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasLocalPosition);
\r
139 if(statements.length > 1)
\r
140 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");
\r
141 if(statements.length == 0)
\r
143 return new org.simantics.proconf.g3d.stubs.Position(graph, statements[0].getObject());
\r
146 public void addLocalPosition(ResourceContainer v) {
\r
147 graph.addStatement(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasLocalPosition, v.getResource());
\r
150 public void setLocalPosition(ResourceContainer v) {
\r
151 Resource predicate = org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasLocalPosition;
\r
152 graph.removeStatements(resource, predicate);
\r
153 graph.addStatement(resource, predicate, v.getResource());
\r
156 public org.simantics.proconf.g3d.stubs.Position getWorldPosition() {
\r
157 Statement[] statements = graph.getStatements(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasWorldPosition);
\r
158 if(statements.length > 1)
\r
159 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");
\r
160 if(statements.length == 0)
\r
162 return new org.simantics.proconf.g3d.stubs.Position(graph, statements[0].getObject());
\r
165 public void addWorldPosition(ResourceContainer v) {
\r
166 graph.addStatement(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasWorldPosition, v.getResource());
\r
169 public void setWorldPosition(ResourceContainer v) {
\r
170 Resource predicate = org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasWorldPosition;
\r
171 graph.removeStatements(resource, predicate);
\r
172 graph.addStatement(resource, predicate, v.getResource());
\r
175 public org.simantics.proconf.g3d.stubs.Orientation getLocalOrientation() {
\r
176 Statement[] statements = graph.getStatements(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasLocalOrientation);
\r
177 if(statements.length > 1)
\r
178 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");
\r
179 if(statements.length == 0)
\r
181 return new org.simantics.proconf.g3d.stubs.Orientation(graph, statements[0].getObject());
\r
184 public void addLocalOrientation(ResourceContainer v) {
\r
185 graph.addStatement(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasLocalOrientation, v.getResource());
\r
188 public void setLocalOrientation(ResourceContainer v) {
\r
189 Resource predicate = org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasLocalOrientation;
\r
190 graph.removeStatements(resource, predicate);
\r
191 graph.addStatement(resource, predicate, v.getResource());
\r
194 public org.simantics.proconf.g3d.stubs.Orientation getWorldOrientation() {
\r
195 Statement[] statements = graph.getStatements(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasWorldOrientation);
\r
196 if(statements.length > 1)
\r
197 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");
\r
198 if(statements.length == 0)
\r
200 return new org.simantics.proconf.g3d.stubs.Orientation(graph, statements[0].getObject());
\r
203 public void addWorldOrientation(ResourceContainer v) {
\r
204 graph.addStatement(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasWorldOrientation, v.getResource());
\r
207 public void setWorldOrientation(ResourceContainer v) {
\r
208 Resource predicate = org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasWorldOrientation;
\r
209 graph.removeStatements(resource, predicate);
\r
210 graph.addStatement(resource, predicate, v.getResource());
\r
213 public org.simantics.proconf.g3d.stubs.Center getCenter() {
\r
214 Statement[] statements = graph.getStatements(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasCenter);
\r
215 if(statements.length > 1)
\r
216 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");
\r
217 if(statements.length == 0)
\r
219 return new org.simantics.proconf.g3d.stubs.Center(graph, statements[0].getObject());
\r
222 public void addCenter(ResourceContainer v) {
\r
223 graph.addStatement(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasCenter, v.getResource());
\r
226 public void setCenter(ResourceContainer v) {
\r
227 Resource predicate = org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasCenter;
\r
228 graph.removeStatements(resource, predicate);
\r
229 graph.addStatement(resource, predicate, v.getResource());
\r
232 public org.simantics.processeditor.stubs.PBSNode getParentStructure() {
\r
233 Statement[] statements = graph.getStatements(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasParentStructure);
\r
234 if(statements.length > 1)
\r
235 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");
\r
236 if(statements.length == 0)
\r
238 return new org.simantics.processeditor.stubs.PBSNode(graph, statements[0].getObject());
\r
241 public void addParentStructure(ResourceContainer v) {
\r
242 graph.addStatement(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasParentStructure, v.getResource());
\r
245 public void setParentStructure(ResourceContainer v) {
\r
246 Resource predicate = org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasParentStructure;
\r
247 graph.removeStatements(resource, predicate);
\r
248 graph.addStatement(resource, predicate, v.getResource());
\r
251 public Collection<org.simantics.processeditor.stubs.PBSNode> getChildStructure() {
\r
252 Statement[] statements = graph.getStatements(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasChildStructure);
\r
253 Collection<org.simantics.processeditor.stubs.PBSNode> ret = new ArrayList<org.simantics.processeditor.stubs.PBSNode>(statements.length);
\r
254 for(Statement s : statements)
\r
255 ret.add(new org.simantics.processeditor.stubs.PBSNode(graph, s.getObject()));
\r
259 public void addChildStructure(ResourceContainer v) {
\r
260 graph.addStatement(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasChildStructure, v.getResource());
\r
263 public org.simantics.proconf.g3d.stubs.G3DModel getGraphics() {
\r
264 Statement[] statements = graph.getStatements(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasGraphics);
\r
265 if(statements.length > 1)
\r
266 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");
\r
267 if(statements.length == 0)
\r
269 return new org.simantics.proconf.g3d.stubs.G3DModel(graph, statements[0].getObject());
\r
272 public void addGraphics(ResourceContainer v) {
\r
273 graph.addStatement(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasGraphics, v.getResource());
\r
276 public void setGraphics(ResourceContainer v) {
\r
277 Resource predicate = org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasGraphics;
\r
278 graph.removeStatements(resource, predicate);
\r
279 graph.addStatement(resource, predicate, v.getResource());
\r
282 public double[] getPipeDiameter() {
\r
283 Statement[] statements = graph.getStatements(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasPipeDiameter);
\r
284 if(statements.length != 1)
\r
285 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");
\r
286 return (double[])graph.getValueAsObject(statements[0].getObject());
\r
289 public void setPipeDiameter(Object v) {
\r
290 Resource predicate = org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasPipeDiameter;
\r
291 Collection<Resource> objects = graph.getObjects(resource, predicate);
\r
292 if(objects.size() == 0) {
\r
293 Resource r = graph.newResource();
\r
294 Resource valueType = org.simantics.db.Builtins.getInstance(graph).Double;
\r
295 graph.addStatement(r, graph.getBuiltins().InstanceOf, valueType);
\r
296 graph.setValueAsObject(r, v);
\r
297 graph.addStatement(resource, predicate, r);
\r
299 else if(objects.size() == 1)
\r
300 for(Resource r : objects)
\r
301 graph.setValueAsObject(r, v);
\r
303 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + objects.size() + ") of statements.");
\r
306 public double[] getLength() {
\r
307 Statement[] statements = graph.getStatements(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasLength);
\r
308 if(statements.length != 1)
\r
309 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");
\r
310 return (double[])graph.getValueAsObject(statements[0].getObject());
\r
313 public void setLength(Object v) {
\r
314 Resource predicate = org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasLength;
\r
315 Collection<Resource> objects = graph.getObjects(resource, predicate);
\r
316 if(objects.size() == 0) {
\r
317 Resource r = graph.newResource();
\r
318 Resource valueType = org.simantics.db.Builtins.getInstance(graph).Double;
\r
319 graph.addStatement(r, graph.getBuiltins().InstanceOf, valueType);
\r
320 graph.setValueAsObject(r, v);
\r
321 graph.addStatement(resource, predicate, r);
\r
323 else if(objects.size() == 1)
\r
324 for(Resource r : objects)
\r
325 graph.setValueAsObject(r, v);
\r
327 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + objects.size() + ") of statements.");
\r
330 public org.simantics.processeditor.stubs.PipeControlPoint getControlPoint() {
\r
331 Statement[] statements = graph.getStatements(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasControlPoint);
\r
332 if(statements.length > 1)
\r
333 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");
\r
334 if(statements.length == 0)
\r
336 return new org.simantics.processeditor.stubs.PipeControlPoint(graph, statements[0].getObject());
\r
339 public void addControlPoint(ResourceContainer v) {
\r
340 graph.addStatement(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasControlPoint, v.getResource());
\r
343 public void setControlPoint(ResourceContainer v) {
\r
344 Resource predicate = org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasControlPoint;
\r
345 graph.removeStatements(resource, predicate);
\r
346 graph.addStatement(resource, predicate, v.getResource());
\r
349 public double[] getRotationAngle() {
\r
350 Statement[] statements = graph.getStatements(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasRotationAngle);
\r
351 if(statements.length != 1)
\r
352 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");
\r
353 return (double[])graph.getValueAsObject(statements[0].getObject());
\r
356 public void setRotationAngle(Object v) {
\r
357 Resource predicate = org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasRotationAngle;
\r
358 Collection<Resource> objects = graph.getObjects(resource, predicate);
\r
359 if(objects.size() == 0) {
\r
360 Resource r = graph.newResource();
\r
361 Resource valueType = org.simantics.db.Builtins.getInstance(graph).Double;
\r
362 graph.addStatement(r, graph.getBuiltins().InstanceOf, valueType);
\r
363 graph.setValueAsObject(r, v);
\r
364 graph.addStatement(resource, predicate, r);
\r
366 else if(objects.size() == 1)
\r
367 for(Resource r : objects)
\r
368 graph.setValueAsObject(r, v);
\r
370 throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + objects.size() + ") of statements.");
\r