]> gerrit.simantics Code Review - simantics/3d.git/blob - org.simantics.proconf.processeditor/src/org/simantics/processeditor/stubs/PipeControlPoint.java
fixing subclipse caused problems
[simantics/3d.git] / org.simantics.proconf.processeditor / src / org / simantics / processeditor / stubs / PipeControlPoint.java
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
7  *\r
8  * Contributors:\r
9  *     VTT Technical Research Centre of Finland - initial API and implementation\r
10  *******************************************************************************/\r
11 package org.simantics.processeditor.stubs;\r
12 \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
24 \r
25 public class PipeControlPoint extends Entity implements IPipeControlPoint {\r
26     \r
27     public PipeControlPoint(Graph graph, ResourceContainer resourceContainer) {\r
28         super(graph, resourceContainer.getResource());\r
29     }\r
30     \r
31     public PipeControlPoint(IEntity entity) {\r
32         super(entity.getGraph(), entity.getResource());\r
33     }\r
34     \r
35     public Graph getGraph() {\r
36         return graph;\r
37     }\r
38     \r
39     public static PipeControlPoint createDefault(Graph graph) {\r
40         return new PipeControlPoint(graph, InstanceFactory.instantiate(graph, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).PipeControlPoint));\r
41     }\r
42     \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).PipeControlPoint;\r
46         return graph.isInstanceOf(entity.getResource(), type);\r
47     }\r
48     \r
49     @Override\r
50     public Resource getResource() {\r
51         return resource;\r
52     }\r
53     \r
54     public PipeControlPoint toPipeControlPoint() {\r
55         return this;\r
56     }\r
57     \r
58     public org.simantics.proconf.g3d.stubs.Position getLocalPosition() {\r
59         Statement[] statements = graph.getStatements(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasLocalPosition);\r
60         if(statements.length != 1)\r
61             throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");\r
62         return new org.simantics.proconf.g3d.stubs.Position(graph, statements[0].getObject());\r
63     }\r
64     \r
65     public void addLocalPosition(ResourceContainer v) {\r
66         graph.addStatement(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasLocalPosition, v.getResource());\r
67     }\r
68     \r
69     public void setLocalPosition(ResourceContainer v) {\r
70         Resource predicate = org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasLocalPosition;\r
71         graph.removeStatements(resource, predicate);\r
72         graph.addStatement(resource, predicate, v.getResource());\r
73     }\r
74     \r
75     public org.simantics.proconf.g3d.stubs.Position getWorldPosition() {\r
76         Statement[] statements = graph.getStatements(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasWorldPosition);\r
77         if(statements.length != 1)\r
78             throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");\r
79         return new org.simantics.proconf.g3d.stubs.Position(graph, statements[0].getObject());\r
80     }\r
81     \r
82     public void addWorldPosition(ResourceContainer v) {\r
83         graph.addStatement(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasWorldPosition, v.getResource());\r
84     }\r
85     \r
86     public void setWorldPosition(ResourceContainer v) {\r
87         Resource predicate = org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasWorldPosition;\r
88         graph.removeStatements(resource, predicate);\r
89         graph.addStatement(resource, predicate, v.getResource());\r
90     }\r
91     \r
92     public org.simantics.proconf.g3d.stubs.Orientation getLocalOrientation() {\r
93         Statement[] statements = graph.getStatements(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasLocalOrientation);\r
94         if(statements.length != 1)\r
95             throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");\r
96         return new org.simantics.proconf.g3d.stubs.Orientation(graph, statements[0].getObject());\r
97     }\r
98     \r
99     public void addLocalOrientation(ResourceContainer v) {\r
100         graph.addStatement(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasLocalOrientation, v.getResource());\r
101     }\r
102     \r
103     public void setLocalOrientation(ResourceContainer v) {\r
104         Resource predicate = org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasLocalOrientation;\r
105         graph.removeStatements(resource, predicate);\r
106         graph.addStatement(resource, predicate, v.getResource());\r
107     }\r
108     \r
109     public org.simantics.proconf.g3d.stubs.Orientation getWorldOrientation() {\r
110         Statement[] statements = graph.getStatements(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasWorldOrientation);\r
111         if(statements.length != 1)\r
112             throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");\r
113         return new org.simantics.proconf.g3d.stubs.Orientation(graph, statements[0].getObject());\r
114     }\r
115     \r
116     public void addWorldOrientation(ResourceContainer v) {\r
117         graph.addStatement(resource, org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasWorldOrientation, v.getResource());\r
118     }\r
119     \r
120     public void setWorldOrientation(ResourceContainer v) {\r
121         Resource predicate = org.simantics.proconf.g3d.stubs.G3DResource.getInstance(graph).HasWorldOrientation;\r
122         graph.removeStatements(resource, predicate);\r
123         graph.addStatement(resource, predicate, v.getResource());\r
124     }\r
125     \r
126     public org.simantics.processeditor.stubs.PipeControlPoint getNext() {\r
127         Statement[] statements = graph.getStatements(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasNext);\r
128         if(statements.length > 1)\r
129             throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");\r
130         if(statements.length == 0)\r
131             return null;\r
132         return new org.simantics.processeditor.stubs.PipeControlPoint(graph, statements[0].getObject());\r
133     }\r
134     \r
135     public void addNext(ResourceContainer v) {\r
136         graph.addStatement(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasNext, v.getResource());\r
137     }\r
138     \r
139     public void setNext(ResourceContainer v) {\r
140         Resource predicate = org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasNext;\r
141         graph.removeStatements(resource, predicate);\r
142         graph.addStatement(resource, predicate, v.getResource());\r
143     }\r
144     \r
145     public org.simantics.processeditor.stubs.PipeControlPoint getPrevious() {\r
146         Statement[] statements = graph.getStatements(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasPrevious);\r
147         if(statements.length > 1)\r
148             throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");\r
149         if(statements.length == 0)\r
150             return null;\r
151         return new org.simantics.processeditor.stubs.PipeControlPoint(graph, statements[0].getObject());\r
152     }\r
153     \r
154     public void addPrevious(ResourceContainer v) {\r
155         graph.addStatement(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasPrevious, v.getResource());\r
156     }\r
157     \r
158     public void setPrevious(ResourceContainer v) {\r
159         Resource predicate = org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasPrevious;\r
160         graph.removeStatements(resource, predicate);\r
161         graph.addStatement(resource, predicate, v.getResource());\r
162     }\r
163     \r
164     public double[] getPipeDiameter() {\r
165         Statement[] statements = graph.getStatements(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasPipeDiameter);\r
166         if(statements.length != 1)\r
167             throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");\r
168         return (double[])graph.getValueAsObject(statements[0].getObject());\r
169     }\r
170     \r
171     public void setPipeDiameter(Object v) {\r
172         Resource predicate = org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasPipeDiameter;\r
173         Collection<Resource> objects = graph.getObjects(resource, predicate);\r
174         if(objects.size() == 0) {\r
175             Resource r = graph.newResource();\r
176         Resource valueType = org.simantics.db.Builtins.getInstance(graph).Double;\r
177             graph.addStatement(r, graph.getBuiltins().InstanceOf, valueType);\r
178             graph.setValueAsObject(r, v);\r
179             graph.addStatement(resource, predicate, r);\r
180         }\r
181         else if(objects.size() == 1)\r
182             for(Resource r : objects)\r
183                 graph.setValueAsObject(r, v);\r
184         else\r
185             throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + objects.size() + ") of statements.");\r
186     }\r
187     \r
188     public Collection<org.simantics.processeditor.stubs.PipeControlPoint> getSubPoint() {\r
189         Statement[] statements = graph.getStatements(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasSubPoint);\r
190         Collection<org.simantics.processeditor.stubs.PipeControlPoint> ret = new ArrayList<org.simantics.processeditor.stubs.PipeControlPoint>(statements.length);\r
191         for(Statement s : statements)\r
192             ret.add(new org.simantics.processeditor.stubs.PipeControlPoint(graph, s.getObject()));\r
193         return ret;\r
194     }\r
195     \r
196     public void addSubPoint(ResourceContainer v) {\r
197         graph.addStatement(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).HasSubPoint, v.getResource());\r
198     }\r
199     \r
200     public org.simantics.processeditor.stubs.PipeControlPoint getSubPointOf() {\r
201         Statement[] statements = graph.getStatements(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).SubPointOf);\r
202         if(statements.length > 1)\r
203             throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");\r
204         if(statements.length == 0)\r
205             return null;\r
206         return new org.simantics.processeditor.stubs.PipeControlPoint(graph, statements[0].getObject());\r
207     }\r
208     \r
209     public void addSubPointOf(ResourceContainer v) {\r
210         graph.addStatement(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).SubPointOf, v.getResource());\r
211     }\r
212     \r
213     public void setSubPointOf(ResourceContainer v) {\r
214         Resource predicate = org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).SubPointOf;\r
215         graph.removeStatements(resource, predicate);\r
216         graph.addStatement(resource, predicate, v.getResource());\r
217     }\r
218     \r
219     // [Nozzle] | [Pipeline Component]\r
220     public org.simantics.layer0.utils.IEntity getControlPointOf() {\r
221         Statement[] statements = graph.getStatements(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).ControlPointOf);\r
222         if(statements.length > 1)\r
223             throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");\r
224         if(statements.length == 0)\r
225             return null;\r
226         return new Entity(graph, statements[0].getObject());\r
227     }\r
228     \r
229     // [Nozzle] | [Pipeline Component]\r
230     public void addControlPointOf(ResourceContainer v) {\r
231         graph.addStatement(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).ControlPointOf, v.getResource());\r
232     }\r
233     \r
234     // [Nozzle] | [Pipeline Component]\r
235     public void setControlPointOf(ResourceContainer v) {\r
236         Resource predicate = org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).ControlPointOf;\r
237         graph.removeStatements(resource, predicate);\r
238         graph.addStatement(resource, predicate, v.getResource());\r
239     }\r
240     \r
241     public org.simantics.processeditor.stubs.PipeRun getControlPointOfPipeRun() {\r
242         Statement[] statements = graph.getStatements(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).ControlPointOfPipeRun);\r
243         if(statements.length > 1)\r
244             throw new ResourceDoesNotSatisfyAssumptionException("Wrong number (" + statements.length + ") of statements.");\r
245         if(statements.length == 0)\r
246             return null;\r
247         return new org.simantics.processeditor.stubs.PipeRun(graph, statements[0].getObject());\r
248     }\r
249     \r
250     public void addControlPointOfPipeRun(ResourceContainer v) {\r
251         graph.addStatement(resource, org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).ControlPointOfPipeRun, v.getResource());\r
252     }\r
253     \r
254     public void setControlPointOfPipeRun(ResourceContainer v) {\r
255         Resource predicate = org.simantics.processeditor.stubs.Plant3DResource.getInstance(graph).ControlPointOfPipeRun;\r
256         graph.removeStatements(resource, predicate);\r
257         graph.addStatement(resource, predicate, v.getResource());\r
258     }\r
259     \r
260 }\r
261 \r