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