]> gerrit.simantics Code Review - simantics/3d.git/blob - org.simantics.g3d.csg.ontology/src/org/simantics/g3d/csg/ontology/CSG.java
Recomplied G3D ontologies and updated AnntotatedPropertyTabContrubutor
[simantics/3d.git] / org.simantics.g3d.csg.ontology / src / org / simantics / g3d / csg / ontology / CSG.java
1 /*******************************************************************************\r
2  * Copyright (c) 2012, 2013 Association for Decentralized Information Management in\r
3  * 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
8  *\r
9  * Contributors:\r
10  *     VTT Technical Research Centre of Finland - initial API and implementation\r
11  *******************************************************************************/\r
12 package org.simantics.g3d.csg.ontology;\r
13 \r
14 import org.simantics.db.RequestProcessor;\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
20 import org.simantics.db.service.QueryControl;\r
21 \r
22 public class CSG {\r
23     \r
24     public final Resource Barrel;\r
25     public final Resource BooleanOperation;\r
26     public final Resource Box;\r
27     public final Resource CSGBrowseContext;\r
28     public final Resource CSGBrowseContext_ActiveLabelDecorationRule;\r
29     public final Resource CSGBrowseContext_RunLabelRule;\r
30     public final Resource CSGBrowseContext_ShapeTabContribution;\r
31     public final Resource Cone;\r
32     public final Resource Cylinder;\r
33     public final Resource Difference;\r
34     public final Resource EllipticCylinder;\r
35     public final Resource HasBottomRadius;\r
36     public final Resource HasBottomRadius_Inverse;\r
37     public final Resource HasCorners;\r
38     public final Resource HasCorners_Inverse;\r
39     public final Resource HasHeight;\r
40     public final Resource HasHeight_Inverse;\r
41     public final Resource HasMajorRadius;\r
42     public final Resource HasMajorRadius_Inverse;\r
43     public final Resource HasMinorRadius;\r
44     public final Resource HasMinorRadius_Inverse;\r
45     public final Resource HasRadius;\r
46     public final Resource HasRadius_Inverse;\r
47     public final Resource HasSizingProperty;\r
48     public final Resource HasSizingProperty_Inverse;\r
49     public final Resource HasTopRadius;\r
50     public final Resource HasTopRadius_Inverse;\r
51     public final Resource HasXAxisMaximumSize;\r
52     public final Resource HasXAxisMaximumSize_Inverse;\r
53     public final Resource HasXAxisMinimumSize;\r
54     public final Resource HasXAxisMinimumSize_Inverse;\r
55     public final Resource HasXAxisSize;\r
56     public final Resource HasXAxisSize_Inverse;\r
57     public final Resource HasYAxisSize;\r
58     public final Resource HasYAxisSize_Inverse;\r
59     public final Resource HasZAxisMaximumSize;\r
60     public final Resource HasZAxisMaximumSize_Inverse;\r
61     public final Resource HasZAxisMinimumSize;\r
62     public final Resource HasZAxisMinimumSize_Inverse;\r
63     public final Resource HasZAxisSize;\r
64     public final Resource HasZAxisSize_Inverse;\r
65     public final Resource Images;\r
66     public final Resource Images_Difference;\r
67     public final Resource Images_Intersection;\r
68     public final Resource Images_Ruby;\r
69     public final Resource Images_Union;\r
70     public final Resource Intersection;\r
71     public final Resource Model;\r
72     public final Resource Primitive;\r
73     public final Resource RectangularSolid;\r
74     public final Resource RegularPrism;\r
75     public final Resource Shape;\r
76     public final Resource Sphere;\r
77     public final Resource Torus;\r
78     public final Resource Union;\r
79     public final Resource hasChildShape;\r
80     public final Resource hasChildShape_Inverse;\r
81     public final Resource hasPrimaryShape;\r
82     public final Resource hasPrimaryShape_Inverse;\r
83     public final Resource hasSecondaryShape;\r
84     public final Resource hasSecondaryShape_Inverse;\r
85         \r
86     public static class URIs {\r
87         public static final String Barrel = "http://www.simantics.org/CSG-0.1/Barrel";\r
88         public static final String BooleanOperation = "http://www.simantics.org/CSG-0.1/BooleanOperation";\r
89         public static final String Box = "http://www.simantics.org/CSG-0.1/Box";\r
90         public static final String CSGBrowseContext = "http://www.simantics.org/CSG-0.1/CSGBrowseContext";\r
91         public static final String CSGBrowseContext_ActiveLabelDecorationRule = "http://www.simantics.org/CSG-0.1/CSGBrowseContext/ActiveLabelDecorationRule";\r
92         public static final String CSGBrowseContext_RunLabelRule = "http://www.simantics.org/CSG-0.1/CSGBrowseContext/RunLabelRule";\r
93         public static final String CSGBrowseContext_ShapeTabContribution = "http://www.simantics.org/CSG-0.1/CSGBrowseContext/ShapeTabContribution";\r
94         public static final String Cone = "http://www.simantics.org/CSG-0.1/Cone";\r
95         public static final String Cylinder = "http://www.simantics.org/CSG-0.1/Cylinder";\r
96         public static final String Difference = "http://www.simantics.org/CSG-0.1/Difference";\r
97         public static final String EllipticCylinder = "http://www.simantics.org/CSG-0.1/EllipticCylinder";\r
98         public static final String HasBottomRadius = "http://www.simantics.org/CSG-0.1/HasBottomRadius";\r
99         public static final String HasBottomRadius_Inverse = "http://www.simantics.org/CSG-0.1/HasBottomRadius/Inverse";\r
100         public static final String HasCorners = "http://www.simantics.org/CSG-0.1/HasCorners";\r
101         public static final String HasCorners_Inverse = "http://www.simantics.org/CSG-0.1/HasCorners/Inverse";\r
102         public static final String HasHeight = "http://www.simantics.org/CSG-0.1/HasHeight";\r
103         public static final String HasHeight_Inverse = "http://www.simantics.org/CSG-0.1/HasHeight/Inverse";\r
104         public static final String HasMajorRadius = "http://www.simantics.org/CSG-0.1/HasMajorRadius";\r
105         public static final String HasMajorRadius_Inverse = "http://www.simantics.org/CSG-0.1/HasMajorRadius/Inverse";\r
106         public static final String HasMinorRadius = "http://www.simantics.org/CSG-0.1/HasMinorRadius";\r
107         public static final String HasMinorRadius_Inverse = "http://www.simantics.org/CSG-0.1/HasMinorRadius/Inverse";\r
108         public static final String HasRadius = "http://www.simantics.org/CSG-0.1/HasRadius";\r
109         public static final String HasRadius_Inverse = "http://www.simantics.org/CSG-0.1/HasRadius/Inverse";\r
110         public static final String HasSizingProperty = "http://www.simantics.org/CSG-0.1/HasSizingProperty";\r
111         public static final String HasSizingProperty_Inverse = "http://www.simantics.org/CSG-0.1/HasSizingProperty/Inverse";\r
112         public static final String HasTopRadius = "http://www.simantics.org/CSG-0.1/HasTopRadius";\r
113         public static final String HasTopRadius_Inverse = "http://www.simantics.org/CSG-0.1/HasTopRadius/Inverse";\r
114         public static final String HasXAxisMaximumSize = "http://www.simantics.org/CSG-0.1/HasXAxisMaximumSize";\r
115         public static final String HasXAxisMaximumSize_Inverse = "http://www.simantics.org/CSG-0.1/HasXAxisMaximumSize/Inverse";\r
116         public static final String HasXAxisMinimumSize = "http://www.simantics.org/CSG-0.1/HasXAxisMinimumSize";\r
117         public static final String HasXAxisMinimumSize_Inverse = "http://www.simantics.org/CSG-0.1/HasXAxisMinimumSize/Inverse";\r
118         public static final String HasXAxisSize = "http://www.simantics.org/CSG-0.1/HasXAxisSize";\r
119         public static final String HasXAxisSize_Inverse = "http://www.simantics.org/CSG-0.1/HasXAxisSize/Inverse";\r
120         public static final String HasYAxisSize = "http://www.simantics.org/CSG-0.1/HasYAxisSize";\r
121         public static final String HasYAxisSize_Inverse = "http://www.simantics.org/CSG-0.1/HasYAxisSize/Inverse";\r
122         public static final String HasZAxisMaximumSize = "http://www.simantics.org/CSG-0.1/HasZAxisMaximumSize";\r
123         public static final String HasZAxisMaximumSize_Inverse = "http://www.simantics.org/CSG-0.1/HasZAxisMaximumSize/Inverse";\r
124         public static final String HasZAxisMinimumSize = "http://www.simantics.org/CSG-0.1/HasZAxisMinimumSize";\r
125         public static final String HasZAxisMinimumSize_Inverse = "http://www.simantics.org/CSG-0.1/HasZAxisMinimumSize/Inverse";\r
126         public static final String HasZAxisSize = "http://www.simantics.org/CSG-0.1/HasZAxisSize";\r
127         public static final String HasZAxisSize_Inverse = "http://www.simantics.org/CSG-0.1/HasZAxisSize/Inverse";\r
128         public static final String Images = "http://www.simantics.org/CSG-0.1/Images";\r
129         public static final String Images_Difference = "http://www.simantics.org/CSG-0.1/Images/Difference";\r
130         public static final String Images_Intersection = "http://www.simantics.org/CSG-0.1/Images/Intersection";\r
131         public static final String Images_Ruby = "http://www.simantics.org/CSG-0.1/Images/Ruby";\r
132         public static final String Images_Union = "http://www.simantics.org/CSG-0.1/Images/Union";\r
133         public static final String Intersection = "http://www.simantics.org/CSG-0.1/Intersection";\r
134         public static final String Model = "http://www.simantics.org/CSG-0.1/Model";\r
135         public static final String Primitive = "http://www.simantics.org/CSG-0.1/Primitive";\r
136         public static final String RectangularSolid = "http://www.simantics.org/CSG-0.1/RectangularSolid";\r
137         public static final String RegularPrism = "http://www.simantics.org/CSG-0.1/RegularPrism";\r
138         public static final String Shape = "http://www.simantics.org/CSG-0.1/Shape";\r
139         public static final String Sphere = "http://www.simantics.org/CSG-0.1/Sphere";\r
140         public static final String Torus = "http://www.simantics.org/CSG-0.1/Torus";\r
141         public static final String Union = "http://www.simantics.org/CSG-0.1/Union";\r
142         public static final String hasChildShape = "http://www.simantics.org/CSG-0.1/hasChildShape";\r
143         public static final String hasChildShape_Inverse = "http://www.simantics.org/CSG-0.1/hasChildShape/Inverse";\r
144         public static final String hasPrimaryShape = "http://www.simantics.org/CSG-0.1/hasPrimaryShape";\r
145         public static final String hasPrimaryShape_Inverse = "http://www.simantics.org/CSG-0.1/hasPrimaryShape/Inverse";\r
146         public static final String hasSecondaryShape = "http://www.simantics.org/CSG-0.1/hasSecondaryShape";\r
147         public static final String hasSecondaryShape_Inverse = "http://www.simantics.org/CSG-0.1/hasSecondaryShape/Inverse";\r
148     }\r
149     \r
150     public static Resource getResourceOrNull(ReadGraph graph, String uri) {\r
151         try {\r
152             return graph.getResource(uri);\r
153         } catch(DatabaseException e) {\r
154             System.err.println(e.getMessage());\r
155             return null;\r
156         }\r
157     }\r
158     \r
159     public CSG(ReadGraph graph) {\r
160         Barrel = getResourceOrNull(graph, URIs.Barrel);\r
161         BooleanOperation = getResourceOrNull(graph, URIs.BooleanOperation);\r
162         Box = getResourceOrNull(graph, URIs.Box);\r
163         CSGBrowseContext = getResourceOrNull(graph, URIs.CSGBrowseContext);\r
164         CSGBrowseContext_ActiveLabelDecorationRule = getResourceOrNull(graph, URIs.CSGBrowseContext_ActiveLabelDecorationRule);\r
165         CSGBrowseContext_RunLabelRule = getResourceOrNull(graph, URIs.CSGBrowseContext_RunLabelRule);\r
166         CSGBrowseContext_ShapeTabContribution = getResourceOrNull(graph, URIs.CSGBrowseContext_ShapeTabContribution);\r
167         Cone = getResourceOrNull(graph, URIs.Cone);\r
168         Cylinder = getResourceOrNull(graph, URIs.Cylinder);\r
169         Difference = getResourceOrNull(graph, URIs.Difference);\r
170         EllipticCylinder = getResourceOrNull(graph, URIs.EllipticCylinder);\r
171         HasBottomRadius = getResourceOrNull(graph, URIs.HasBottomRadius);\r
172         HasBottomRadius_Inverse = getResourceOrNull(graph, URIs.HasBottomRadius_Inverse);\r
173         HasCorners = getResourceOrNull(graph, URIs.HasCorners);\r
174         HasCorners_Inverse = getResourceOrNull(graph, URIs.HasCorners_Inverse);\r
175         HasHeight = getResourceOrNull(graph, URIs.HasHeight);\r
176         HasHeight_Inverse = getResourceOrNull(graph, URIs.HasHeight_Inverse);\r
177         HasMajorRadius = getResourceOrNull(graph, URIs.HasMajorRadius);\r
178         HasMajorRadius_Inverse = getResourceOrNull(graph, URIs.HasMajorRadius_Inverse);\r
179         HasMinorRadius = getResourceOrNull(graph, URIs.HasMinorRadius);\r
180         HasMinorRadius_Inverse = getResourceOrNull(graph, URIs.HasMinorRadius_Inverse);\r
181         HasRadius = getResourceOrNull(graph, URIs.HasRadius);\r
182         HasRadius_Inverse = getResourceOrNull(graph, URIs.HasRadius_Inverse);\r
183         HasSizingProperty = getResourceOrNull(graph, URIs.HasSizingProperty);\r
184         HasSizingProperty_Inverse = getResourceOrNull(graph, URIs.HasSizingProperty_Inverse);\r
185         HasTopRadius = getResourceOrNull(graph, URIs.HasTopRadius);\r
186         HasTopRadius_Inverse = getResourceOrNull(graph, URIs.HasTopRadius_Inverse);\r
187         HasXAxisMaximumSize = getResourceOrNull(graph, URIs.HasXAxisMaximumSize);\r
188         HasXAxisMaximumSize_Inverse = getResourceOrNull(graph, URIs.HasXAxisMaximumSize_Inverse);\r
189         HasXAxisMinimumSize = getResourceOrNull(graph, URIs.HasXAxisMinimumSize);\r
190         HasXAxisMinimumSize_Inverse = getResourceOrNull(graph, URIs.HasXAxisMinimumSize_Inverse);\r
191         HasXAxisSize = getResourceOrNull(graph, URIs.HasXAxisSize);\r
192         HasXAxisSize_Inverse = getResourceOrNull(graph, URIs.HasXAxisSize_Inverse);\r
193         HasYAxisSize = getResourceOrNull(graph, URIs.HasYAxisSize);\r
194         HasYAxisSize_Inverse = getResourceOrNull(graph, URIs.HasYAxisSize_Inverse);\r
195         HasZAxisMaximumSize = getResourceOrNull(graph, URIs.HasZAxisMaximumSize);\r
196         HasZAxisMaximumSize_Inverse = getResourceOrNull(graph, URIs.HasZAxisMaximumSize_Inverse);\r
197         HasZAxisMinimumSize = getResourceOrNull(graph, URIs.HasZAxisMinimumSize);\r
198         HasZAxisMinimumSize_Inverse = getResourceOrNull(graph, URIs.HasZAxisMinimumSize_Inverse);\r
199         HasZAxisSize = getResourceOrNull(graph, URIs.HasZAxisSize);\r
200         HasZAxisSize_Inverse = getResourceOrNull(graph, URIs.HasZAxisSize_Inverse);\r
201         Images = getResourceOrNull(graph, URIs.Images);\r
202         Images_Difference = getResourceOrNull(graph, URIs.Images_Difference);\r
203         Images_Intersection = getResourceOrNull(graph, URIs.Images_Intersection);\r
204         Images_Ruby = getResourceOrNull(graph, URIs.Images_Ruby);\r
205         Images_Union = getResourceOrNull(graph, URIs.Images_Union);\r
206         Intersection = getResourceOrNull(graph, URIs.Intersection);\r
207         Model = getResourceOrNull(graph, URIs.Model);\r
208         Primitive = getResourceOrNull(graph, URIs.Primitive);\r
209         RectangularSolid = getResourceOrNull(graph, URIs.RectangularSolid);\r
210         RegularPrism = getResourceOrNull(graph, URIs.RegularPrism);\r
211         Shape = getResourceOrNull(graph, URIs.Shape);\r
212         Sphere = getResourceOrNull(graph, URIs.Sphere);\r
213         Torus = getResourceOrNull(graph, URIs.Torus);\r
214         Union = getResourceOrNull(graph, URIs.Union);\r
215         hasChildShape = getResourceOrNull(graph, URIs.hasChildShape);\r
216         hasChildShape_Inverse = getResourceOrNull(graph, URIs.hasChildShape_Inverse);\r
217         hasPrimaryShape = getResourceOrNull(graph, URIs.hasPrimaryShape);\r
218         hasPrimaryShape_Inverse = getResourceOrNull(graph, URIs.hasPrimaryShape_Inverse);\r
219         hasSecondaryShape = getResourceOrNull(graph, URIs.hasSecondaryShape);\r
220         hasSecondaryShape_Inverse = getResourceOrNull(graph, URIs.hasSecondaryShape_Inverse);\r
221     }\r
222     \r
223     public static CSG getInstance(ReadGraph graph) {\r
224         Session session = graph.getSession();\r
225         CSG ret = session.peekService(CSG.class);\r
226         if(ret == null) {\r
227             QueryControl qc = graph.getService(QueryControl.class);\r
228             ret = new CSG(qc.getIndependentGraph(graph));\r
229             session.registerService(CSG.class, ret);\r
230         }\r
231         return ret;\r
232     }\r
233     \r
234     public static CSG getInstance(RequestProcessor session) throws DatabaseException {\r
235         CSG ret = session.peekService(CSG.class);\r
236         if(ret == null) {\r
237             ret = session.syncRequest(new Read<CSG>() {\r
238                 public CSG perform(ReadGraph graph) throws DatabaseException {\r
239                     QueryControl qc = graph.getService(QueryControl.class);\r
240                     return new CSG(qc.getIndependentGraph(graph));\r
241                 }\r
242             });\r
243             session.registerService(CSG.class, ret);\r
244         }\r
245         return ret;\r
246     }\r
247     \r
248 }\r
249 \r