]> gerrit.simantics Code Review - simantics/3d.git/blob - org.simantics.g3d.csg.ontology/src/org/simantics/g3d/csg/ontology/CSG.java
Repository clean-up.
[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