]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.g3d.csg.ontology/src/org/simantics/g3d/csg/ontology/CSG.java
Up-to-date resource classes
[simantics/3d.git] / org.simantics.g3d.csg.ontology / src / org / simantics / g3d / csg / ontology / CSG.java
index 05dce3996b8fb690a4b0d3915c1b32bc9f2ebead..558522e3c56928407b28e372456bee900b68b98c 100644 (file)
@@ -9,230 +9,230 @@ import org.simantics.db.exception.DatabaseException;
 import org.simantics.db.service.QueryControl;
 
 public class CSG {
-       
-       public final Resource Barrel;
-       public final Resource BooleanOperation;
-       public final Resource Box;
-       public final Resource CSGBrowseContext;
-       public final Resource CSGBrowseContext_ActiveLabelDecorationRule;
-       public final Resource CSGBrowseContext_RunLabelRule;
-       public final Resource CSGBrowseContext_ShapeTabContribution;
-       public final Resource Cone;
-       public final Resource Cylinder;
-       public final Resource Difference;
-       public final Resource EllipticCylinder;
-       public final Resource HasBottomRadius;
-       public final Resource HasBottomRadius_Inverse;
-       public final Resource HasCorners;
-       public final Resource HasCorners_Inverse;
-       public final Resource HasHeight;
-       public final Resource HasHeight_Inverse;
-       public final Resource HasMajorRadius;
-       public final Resource HasMajorRadius_Inverse;
-       public final Resource HasMinorRadius;
-       public final Resource HasMinorRadius_Inverse;
-       public final Resource HasRadius;
-       public final Resource HasRadius_Inverse;
-       public final Resource HasSizingProperty;
-       public final Resource HasSizingProperty_Inverse;
-       public final Resource HasTopRadius;
-       public final Resource HasTopRadius_Inverse;
-       public final Resource HasXAxisMaximumSize;
-       public final Resource HasXAxisMaximumSize_Inverse;
-       public final Resource HasXAxisMinimumSize;
-       public final Resource HasXAxisMinimumSize_Inverse;
-       public final Resource HasXAxisSize;
-       public final Resource HasXAxisSize_Inverse;
-       public final Resource HasYAxisSize;
-       public final Resource HasYAxisSize_Inverse;
-       public final Resource HasZAxisMaximumSize;
-       public final Resource HasZAxisMaximumSize_Inverse;
-       public final Resource HasZAxisMinimumSize;
-       public final Resource HasZAxisMinimumSize_Inverse;
-       public final Resource HasZAxisSize;
-       public final Resource HasZAxisSize_Inverse;
-       public final Resource Images;
-       public final Resource Images_Difference;
-       public final Resource Images_Intersection;
-       public final Resource Images_Ruby;
-       public final Resource Images_Union;
-       public final Resource Intersection;
-       public final Resource Model;
-       public final Resource Primitive;
-       public final Resource RectangularSolid;
-       public final Resource RegularPrism;
-       public final Resource Shape;
-       public final Resource Sphere;
-       public final Resource Torus;
-       public final Resource Union;
-       public final Resource hasChildShape;
-       public final Resource hasChildShape_Inverse;
-       public final Resource hasPrimaryShape;
-       public final Resource hasPrimaryShape_Inverse;
-       public final Resource hasSecondaryShape;
-       public final Resource hasSecondaryShape_Inverse;
-               
-       public static class URIs {
-               public static final String Barrel = "http://www.simantics.org/CSG-0.1/Barrel";
-               public static final String BooleanOperation = "http://www.simantics.org/CSG-0.1/BooleanOperation";
-               public static final String Box = "http://www.simantics.org/CSG-0.1/Box";
-               public static final String CSGBrowseContext = "http://www.simantics.org/CSG-0.1/CSGBrowseContext";
-               public static final String CSGBrowseContext_ActiveLabelDecorationRule = "http://www.simantics.org/CSG-0.1/CSGBrowseContext/ActiveLabelDecorationRule";
-               public static final String CSGBrowseContext_RunLabelRule = "http://www.simantics.org/CSG-0.1/CSGBrowseContext/RunLabelRule";
-               public static final String CSGBrowseContext_ShapeTabContribution = "http://www.simantics.org/CSG-0.1/CSGBrowseContext/ShapeTabContribution";
-               public static final String Cone = "http://www.simantics.org/CSG-0.1/Cone";
-               public static final String Cylinder = "http://www.simantics.org/CSG-0.1/Cylinder";
-               public static final String Difference = "http://www.simantics.org/CSG-0.1/Difference";
-               public static final String EllipticCylinder = "http://www.simantics.org/CSG-0.1/EllipticCylinder";
-               public static final String HasBottomRadius = "http://www.simantics.org/CSG-0.1/HasBottomRadius";
-               public static final String HasBottomRadius_Inverse = "http://www.simantics.org/CSG-0.1/HasBottomRadius/Inverse";
-               public static final String HasCorners = "http://www.simantics.org/CSG-0.1/HasCorners";
-               public static final String HasCorners_Inverse = "http://www.simantics.org/CSG-0.1/HasCorners/Inverse";
-               public static final String HasHeight = "http://www.simantics.org/CSG-0.1/HasHeight";
-               public static final String HasHeight_Inverse = "http://www.simantics.org/CSG-0.1/HasHeight/Inverse";
-               public static final String HasMajorRadius = "http://www.simantics.org/CSG-0.1/HasMajorRadius";
-               public static final String HasMajorRadius_Inverse = "http://www.simantics.org/CSG-0.1/HasMajorRadius/Inverse";
-               public static final String HasMinorRadius = "http://www.simantics.org/CSG-0.1/HasMinorRadius";
-               public static final String HasMinorRadius_Inverse = "http://www.simantics.org/CSG-0.1/HasMinorRadius/Inverse";
-               public static final String HasRadius = "http://www.simantics.org/CSG-0.1/HasRadius";
-               public static final String HasRadius_Inverse = "http://www.simantics.org/CSG-0.1/HasRadius/Inverse";
-               public static final String HasSizingProperty = "http://www.simantics.org/CSG-0.1/HasSizingProperty";
-               public static final String HasSizingProperty_Inverse = "http://www.simantics.org/CSG-0.1/HasSizingProperty/Inverse";
-               public static final String HasTopRadius = "http://www.simantics.org/CSG-0.1/HasTopRadius";
-               public static final String HasTopRadius_Inverse = "http://www.simantics.org/CSG-0.1/HasTopRadius/Inverse";
-               public static final String HasXAxisMaximumSize = "http://www.simantics.org/CSG-0.1/HasXAxisMaximumSize";
-               public static final String HasXAxisMaximumSize_Inverse = "http://www.simantics.org/CSG-0.1/HasXAxisMaximumSize/Inverse";
-               public static final String HasXAxisMinimumSize = "http://www.simantics.org/CSG-0.1/HasXAxisMinimumSize";
-               public static final String HasXAxisMinimumSize_Inverse = "http://www.simantics.org/CSG-0.1/HasXAxisMinimumSize/Inverse";
-               public static final String HasXAxisSize = "http://www.simantics.org/CSG-0.1/HasXAxisSize";
-               public static final String HasXAxisSize_Inverse = "http://www.simantics.org/CSG-0.1/HasXAxisSize/Inverse";
-               public static final String HasYAxisSize = "http://www.simantics.org/CSG-0.1/HasYAxisSize";
-               public static final String HasYAxisSize_Inverse = "http://www.simantics.org/CSG-0.1/HasYAxisSize/Inverse";
-               public static final String HasZAxisMaximumSize = "http://www.simantics.org/CSG-0.1/HasZAxisMaximumSize";
-               public static final String HasZAxisMaximumSize_Inverse = "http://www.simantics.org/CSG-0.1/HasZAxisMaximumSize/Inverse";
-               public static final String HasZAxisMinimumSize = "http://www.simantics.org/CSG-0.1/HasZAxisMinimumSize";
-               public static final String HasZAxisMinimumSize_Inverse = "http://www.simantics.org/CSG-0.1/HasZAxisMinimumSize/Inverse";
-               public static final String HasZAxisSize = "http://www.simantics.org/CSG-0.1/HasZAxisSize";
-               public static final String HasZAxisSize_Inverse = "http://www.simantics.org/CSG-0.1/HasZAxisSize/Inverse";
-               public static final String Images = "http://www.simantics.org/CSG-0.1/Images";
-               public static final String Images_Difference = "http://www.simantics.org/CSG-0.1/Images/Difference";
-               public static final String Images_Intersection = "http://www.simantics.org/CSG-0.1/Images/Intersection";
-               public static final String Images_Ruby = "http://www.simantics.org/CSG-0.1/Images/Ruby";
-               public static final String Images_Union = "http://www.simantics.org/CSG-0.1/Images/Union";
-               public static final String Intersection = "http://www.simantics.org/CSG-0.1/Intersection";
-               public static final String Model = "http://www.simantics.org/CSG-0.1/Model";
-               public static final String Primitive = "http://www.simantics.org/CSG-0.1/Primitive";
-               public static final String RectangularSolid = "http://www.simantics.org/CSG-0.1/RectangularSolid";
-               public static final String RegularPrism = "http://www.simantics.org/CSG-0.1/RegularPrism";
-               public static final String Shape = "http://www.simantics.org/CSG-0.1/Shape";
-               public static final String Sphere = "http://www.simantics.org/CSG-0.1/Sphere";
-               public static final String Torus = "http://www.simantics.org/CSG-0.1/Torus";
-               public static final String Union = "http://www.simantics.org/CSG-0.1/Union";
-               public static final String hasChildShape = "http://www.simantics.org/CSG-0.1/hasChildShape";
-               public static final String hasChildShape_Inverse = "http://www.simantics.org/CSG-0.1/hasChildShape/Inverse";
-               public static final String hasPrimaryShape = "http://www.simantics.org/CSG-0.1/hasPrimaryShape";
-               public static final String hasPrimaryShape_Inverse = "http://www.simantics.org/CSG-0.1/hasPrimaryShape/Inverse";
-               public static final String hasSecondaryShape = "http://www.simantics.org/CSG-0.1/hasSecondaryShape";
-               public static final String hasSecondaryShape_Inverse = "http://www.simantics.org/CSG-0.1/hasSecondaryShape/Inverse";
-       }
-       
-       public static Resource getResourceOrNull(ReadGraph graph, String uri) {
-               try {
-                       return graph.getResource(uri);
-               } catch(DatabaseException e) {
-                       System.err.println(e.getMessage());
-                       return null;
-               }
-       }
-       
-       public CSG(ReadGraph graph) {
-               Barrel = getResourceOrNull(graph, URIs.Barrel);
-               BooleanOperation = getResourceOrNull(graph, URIs.BooleanOperation);
-               Box = getResourceOrNull(graph, URIs.Box);
-               CSGBrowseContext = getResourceOrNull(graph, URIs.CSGBrowseContext);
-               CSGBrowseContext_ActiveLabelDecorationRule = getResourceOrNull(graph, URIs.CSGBrowseContext_ActiveLabelDecorationRule);
-               CSGBrowseContext_RunLabelRule = getResourceOrNull(graph, URIs.CSGBrowseContext_RunLabelRule);
-               CSGBrowseContext_ShapeTabContribution = getResourceOrNull(graph, URIs.CSGBrowseContext_ShapeTabContribution);
-               Cone = getResourceOrNull(graph, URIs.Cone);
-               Cylinder = getResourceOrNull(graph, URIs.Cylinder);
-               Difference = getResourceOrNull(graph, URIs.Difference);
-               EllipticCylinder = getResourceOrNull(graph, URIs.EllipticCylinder);
-               HasBottomRadius = getResourceOrNull(graph, URIs.HasBottomRadius);
-               HasBottomRadius_Inverse = getResourceOrNull(graph, URIs.HasBottomRadius_Inverse);
-               HasCorners = getResourceOrNull(graph, URIs.HasCorners);
-               HasCorners_Inverse = getResourceOrNull(graph, URIs.HasCorners_Inverse);
-               HasHeight = getResourceOrNull(graph, URIs.HasHeight);
-               HasHeight_Inverse = getResourceOrNull(graph, URIs.HasHeight_Inverse);
-               HasMajorRadius = getResourceOrNull(graph, URIs.HasMajorRadius);
-               HasMajorRadius_Inverse = getResourceOrNull(graph, URIs.HasMajorRadius_Inverse);
-               HasMinorRadius = getResourceOrNull(graph, URIs.HasMinorRadius);
-               HasMinorRadius_Inverse = getResourceOrNull(graph, URIs.HasMinorRadius_Inverse);
-               HasRadius = getResourceOrNull(graph, URIs.HasRadius);
-               HasRadius_Inverse = getResourceOrNull(graph, URIs.HasRadius_Inverse);
-               HasSizingProperty = getResourceOrNull(graph, URIs.HasSizingProperty);
-               HasSizingProperty_Inverse = getResourceOrNull(graph, URIs.HasSizingProperty_Inverse);
-               HasTopRadius = getResourceOrNull(graph, URIs.HasTopRadius);
-               HasTopRadius_Inverse = getResourceOrNull(graph, URIs.HasTopRadius_Inverse);
-               HasXAxisMaximumSize = getResourceOrNull(graph, URIs.HasXAxisMaximumSize);
-               HasXAxisMaximumSize_Inverse = getResourceOrNull(graph, URIs.HasXAxisMaximumSize_Inverse);
-               HasXAxisMinimumSize = getResourceOrNull(graph, URIs.HasXAxisMinimumSize);
-               HasXAxisMinimumSize_Inverse = getResourceOrNull(graph, URIs.HasXAxisMinimumSize_Inverse);
-               HasXAxisSize = getResourceOrNull(graph, URIs.HasXAxisSize);
-               HasXAxisSize_Inverse = getResourceOrNull(graph, URIs.HasXAxisSize_Inverse);
-               HasYAxisSize = getResourceOrNull(graph, URIs.HasYAxisSize);
-               HasYAxisSize_Inverse = getResourceOrNull(graph, URIs.HasYAxisSize_Inverse);
-               HasZAxisMaximumSize = getResourceOrNull(graph, URIs.HasZAxisMaximumSize);
-               HasZAxisMaximumSize_Inverse = getResourceOrNull(graph, URIs.HasZAxisMaximumSize_Inverse);
-               HasZAxisMinimumSize = getResourceOrNull(graph, URIs.HasZAxisMinimumSize);
-               HasZAxisMinimumSize_Inverse = getResourceOrNull(graph, URIs.HasZAxisMinimumSize_Inverse);
-               HasZAxisSize = getResourceOrNull(graph, URIs.HasZAxisSize);
-               HasZAxisSize_Inverse = getResourceOrNull(graph, URIs.HasZAxisSize_Inverse);
-               Images = getResourceOrNull(graph, URIs.Images);
-               Images_Difference = getResourceOrNull(graph, URIs.Images_Difference);
-               Images_Intersection = getResourceOrNull(graph, URIs.Images_Intersection);
-               Images_Ruby = getResourceOrNull(graph, URIs.Images_Ruby);
-               Images_Union = getResourceOrNull(graph, URIs.Images_Union);
-               Intersection = getResourceOrNull(graph, URIs.Intersection);
-               Model = getResourceOrNull(graph, URIs.Model);
-               Primitive = getResourceOrNull(graph, URIs.Primitive);
-               RectangularSolid = getResourceOrNull(graph, URIs.RectangularSolid);
-               RegularPrism = getResourceOrNull(graph, URIs.RegularPrism);
-               Shape = getResourceOrNull(graph, URIs.Shape);
-               Sphere = getResourceOrNull(graph, URIs.Sphere);
-               Torus = getResourceOrNull(graph, URIs.Torus);
-               Union = getResourceOrNull(graph, URIs.Union);
-               hasChildShape = getResourceOrNull(graph, URIs.hasChildShape);
-               hasChildShape_Inverse = getResourceOrNull(graph, URIs.hasChildShape_Inverse);
-               hasPrimaryShape = getResourceOrNull(graph, URIs.hasPrimaryShape);
-               hasPrimaryShape_Inverse = getResourceOrNull(graph, URIs.hasPrimaryShape_Inverse);
-               hasSecondaryShape = getResourceOrNull(graph, URIs.hasSecondaryShape);
-               hasSecondaryShape_Inverse = getResourceOrNull(graph, URIs.hasSecondaryShape_Inverse);
-       }
-       
-       public static CSG getInstance(ReadGraph graph) {
-               Session session = graph.getSession();
-               CSG ret = session.peekService(CSG.class);
-               if(ret == null) {
-                       QueryControl qc = graph.getService(QueryControl.class);
-                       ret = new CSG(qc.getIndependentGraph(graph));
-                       session.registerService(CSG.class, ret);
-               }
-               return ret;
-       }
-       
-       public static CSG getInstance(RequestProcessor session) throws DatabaseException {
-               CSG ret = session.peekService(CSG.class);
-               if(ret == null) {
-                       ret = session.syncRequest(new Read<CSG>() {
-                               public CSG perform(ReadGraph graph) throws DatabaseException {
-                                       QueryControl qc = graph.getService(QueryControl.class);
-                                       return new CSG(qc.getIndependentGraph(graph));
-                               }
-                       });
-                       session.registerService(CSG.class, ret);
-               }
-               return ret;
-       }
-       
+    
+    public final Resource Barrel;
+    public final Resource BooleanOperation;
+    public final Resource Box;
+    public final Resource CSGBrowseContext;
+    public final Resource CSGBrowseContext_ActiveLabelDecorationRule;
+    public final Resource CSGBrowseContext_RunLabelRule;
+    public final Resource CSGBrowseContext_ShapeTabContribution;
+    public final Resource Cone;
+    public final Resource Cylinder;
+    public final Resource Difference;
+    public final Resource EllipticCylinder;
+    public final Resource HasBottomRadius;
+    public final Resource HasBottomRadius_Inverse;
+    public final Resource HasCorners;
+    public final Resource HasCorners_Inverse;
+    public final Resource HasHeight;
+    public final Resource HasHeight_Inverse;
+    public final Resource HasMajorRadius;
+    public final Resource HasMajorRadius_Inverse;
+    public final Resource HasMinorRadius;
+    public final Resource HasMinorRadius_Inverse;
+    public final Resource HasRadius;
+    public final Resource HasRadius_Inverse;
+    public final Resource HasSizingProperty;
+    public final Resource HasSizingProperty_Inverse;
+    public final Resource HasTopRadius;
+    public final Resource HasTopRadius_Inverse;
+    public final Resource HasXAxisMaximumSize;
+    public final Resource HasXAxisMaximumSize_Inverse;
+    public final Resource HasXAxisMinimumSize;
+    public final Resource HasXAxisMinimumSize_Inverse;
+    public final Resource HasXAxisSize;
+    public final Resource HasXAxisSize_Inverse;
+    public final Resource HasYAxisSize;
+    public final Resource HasYAxisSize_Inverse;
+    public final Resource HasZAxisMaximumSize;
+    public final Resource HasZAxisMaximumSize_Inverse;
+    public final Resource HasZAxisMinimumSize;
+    public final Resource HasZAxisMinimumSize_Inverse;
+    public final Resource HasZAxisSize;
+    public final Resource HasZAxisSize_Inverse;
+    public final Resource Images;
+    public final Resource Images_Difference;
+    public final Resource Images_Intersection;
+    public final Resource Images_Ruby;
+    public final Resource Images_Union;
+    public final Resource Intersection;
+    public final Resource Model;
+    public final Resource Primitive;
+    public final Resource RectangularSolid;
+    public final Resource RegularPrism;
+    public final Resource Shape;
+    public final Resource Sphere;
+    public final Resource Torus;
+    public final Resource Union;
+    public final Resource hasChildShape;
+    public final Resource hasChildShape_Inverse;
+    public final Resource hasPrimaryShape;
+    public final Resource hasPrimaryShape_Inverse;
+    public final Resource hasSecondaryShape;
+    public final Resource hasSecondaryShape_Inverse;
+        
+    public static class URIs {
+        public static final String Barrel = "http://www.simantics.org/CSG-0.1/Barrel";
+        public static final String BooleanOperation = "http://www.simantics.org/CSG-0.1/BooleanOperation";
+        public static final String Box = "http://www.simantics.org/CSG-0.1/Box";
+        public static final String CSGBrowseContext = "http://www.simantics.org/CSG-0.1/CSGBrowseContext";
+        public static final String CSGBrowseContext_ActiveLabelDecorationRule = "http://www.simantics.org/CSG-0.1/CSGBrowseContext/ActiveLabelDecorationRule";
+        public static final String CSGBrowseContext_RunLabelRule = "http://www.simantics.org/CSG-0.1/CSGBrowseContext/RunLabelRule";
+        public static final String CSGBrowseContext_ShapeTabContribution = "http://www.simantics.org/CSG-0.1/CSGBrowseContext/ShapeTabContribution";
+        public static final String Cone = "http://www.simantics.org/CSG-0.1/Cone";
+        public static final String Cylinder = "http://www.simantics.org/CSG-0.1/Cylinder";
+        public static final String Difference = "http://www.simantics.org/CSG-0.1/Difference";
+        public static final String EllipticCylinder = "http://www.simantics.org/CSG-0.1/EllipticCylinder";
+        public static final String HasBottomRadius = "http://www.simantics.org/CSG-0.1/HasBottomRadius";
+        public static final String HasBottomRadius_Inverse = "http://www.simantics.org/CSG-0.1/HasBottomRadius/Inverse";
+        public static final String HasCorners = "http://www.simantics.org/CSG-0.1/HasCorners";
+        public static final String HasCorners_Inverse = "http://www.simantics.org/CSG-0.1/HasCorners/Inverse";
+        public static final String HasHeight = "http://www.simantics.org/CSG-0.1/HasHeight";
+        public static final String HasHeight_Inverse = "http://www.simantics.org/CSG-0.1/HasHeight/Inverse";
+        public static final String HasMajorRadius = "http://www.simantics.org/CSG-0.1/HasMajorRadius";
+        public static final String HasMajorRadius_Inverse = "http://www.simantics.org/CSG-0.1/HasMajorRadius/Inverse";
+        public static final String HasMinorRadius = "http://www.simantics.org/CSG-0.1/HasMinorRadius";
+        public static final String HasMinorRadius_Inverse = "http://www.simantics.org/CSG-0.1/HasMinorRadius/Inverse";
+        public static final String HasRadius = "http://www.simantics.org/CSG-0.1/HasRadius";
+        public static final String HasRadius_Inverse = "http://www.simantics.org/CSG-0.1/HasRadius/Inverse";
+        public static final String HasSizingProperty = "http://www.simantics.org/CSG-0.1/HasSizingProperty";
+        public static final String HasSizingProperty_Inverse = "http://www.simantics.org/CSG-0.1/HasSizingProperty/Inverse";
+        public static final String HasTopRadius = "http://www.simantics.org/CSG-0.1/HasTopRadius";
+        public static final String HasTopRadius_Inverse = "http://www.simantics.org/CSG-0.1/HasTopRadius/Inverse";
+        public static final String HasXAxisMaximumSize = "http://www.simantics.org/CSG-0.1/HasXAxisMaximumSize";
+        public static final String HasXAxisMaximumSize_Inverse = "http://www.simantics.org/CSG-0.1/HasXAxisMaximumSize/Inverse";
+        public static final String HasXAxisMinimumSize = "http://www.simantics.org/CSG-0.1/HasXAxisMinimumSize";
+        public static final String HasXAxisMinimumSize_Inverse = "http://www.simantics.org/CSG-0.1/HasXAxisMinimumSize/Inverse";
+        public static final String HasXAxisSize = "http://www.simantics.org/CSG-0.1/HasXAxisSize";
+        public static final String HasXAxisSize_Inverse = "http://www.simantics.org/CSG-0.1/HasXAxisSize/Inverse";
+        public static final String HasYAxisSize = "http://www.simantics.org/CSG-0.1/HasYAxisSize";
+        public static final String HasYAxisSize_Inverse = "http://www.simantics.org/CSG-0.1/HasYAxisSize/Inverse";
+        public static final String HasZAxisMaximumSize = "http://www.simantics.org/CSG-0.1/HasZAxisMaximumSize";
+        public static final String HasZAxisMaximumSize_Inverse = "http://www.simantics.org/CSG-0.1/HasZAxisMaximumSize/Inverse";
+        public static final String HasZAxisMinimumSize = "http://www.simantics.org/CSG-0.1/HasZAxisMinimumSize";
+        public static final String HasZAxisMinimumSize_Inverse = "http://www.simantics.org/CSG-0.1/HasZAxisMinimumSize/Inverse";
+        public static final String HasZAxisSize = "http://www.simantics.org/CSG-0.1/HasZAxisSize";
+        public static final String HasZAxisSize_Inverse = "http://www.simantics.org/CSG-0.1/HasZAxisSize/Inverse";
+        public static final String Images = "http://www.simantics.org/CSG-0.1/Images";
+        public static final String Images_Difference = "http://www.simantics.org/CSG-0.1/Images/Difference";
+        public static final String Images_Intersection = "http://www.simantics.org/CSG-0.1/Images/Intersection";
+        public static final String Images_Ruby = "http://www.simantics.org/CSG-0.1/Images/Ruby";
+        public static final String Images_Union = "http://www.simantics.org/CSG-0.1/Images/Union";
+        public static final String Intersection = "http://www.simantics.org/CSG-0.1/Intersection";
+        public static final String Model = "http://www.simantics.org/CSG-0.1/Model";
+        public static final String Primitive = "http://www.simantics.org/CSG-0.1/Primitive";
+        public static final String RectangularSolid = "http://www.simantics.org/CSG-0.1/RectangularSolid";
+        public static final String RegularPrism = "http://www.simantics.org/CSG-0.1/RegularPrism";
+        public static final String Shape = "http://www.simantics.org/CSG-0.1/Shape";
+        public static final String Sphere = "http://www.simantics.org/CSG-0.1/Sphere";
+        public static final String Torus = "http://www.simantics.org/CSG-0.1/Torus";
+        public static final String Union = "http://www.simantics.org/CSG-0.1/Union";
+        public static final String hasChildShape = "http://www.simantics.org/CSG-0.1/hasChildShape";
+        public static final String hasChildShape_Inverse = "http://www.simantics.org/CSG-0.1/hasChildShape/Inverse";
+        public static final String hasPrimaryShape = "http://www.simantics.org/CSG-0.1/hasPrimaryShape";
+        public static final String hasPrimaryShape_Inverse = "http://www.simantics.org/CSG-0.1/hasPrimaryShape/Inverse";
+        public static final String hasSecondaryShape = "http://www.simantics.org/CSG-0.1/hasSecondaryShape";
+        public static final String hasSecondaryShape_Inverse = "http://www.simantics.org/CSG-0.1/hasSecondaryShape/Inverse";
+    }
+    
+    public static Resource getResourceOrNull(ReadGraph graph, String uri) {
+        try {
+            return graph.getResource(uri);
+        } catch(DatabaseException e) {
+            System.err.println(e.getMessage());
+            return null;
+        }
+    }
+    
+    public CSG(ReadGraph graph) {
+        Barrel = getResourceOrNull(graph, URIs.Barrel);
+        BooleanOperation = getResourceOrNull(graph, URIs.BooleanOperation);
+        Box = getResourceOrNull(graph, URIs.Box);
+        CSGBrowseContext = getResourceOrNull(graph, URIs.CSGBrowseContext);
+        CSGBrowseContext_ActiveLabelDecorationRule = getResourceOrNull(graph, URIs.CSGBrowseContext_ActiveLabelDecorationRule);
+        CSGBrowseContext_RunLabelRule = getResourceOrNull(graph, URIs.CSGBrowseContext_RunLabelRule);
+        CSGBrowseContext_ShapeTabContribution = getResourceOrNull(graph, URIs.CSGBrowseContext_ShapeTabContribution);
+        Cone = getResourceOrNull(graph, URIs.Cone);
+        Cylinder = getResourceOrNull(graph, URIs.Cylinder);
+        Difference = getResourceOrNull(graph, URIs.Difference);
+        EllipticCylinder = getResourceOrNull(graph, URIs.EllipticCylinder);
+        HasBottomRadius = getResourceOrNull(graph, URIs.HasBottomRadius);
+        HasBottomRadius_Inverse = getResourceOrNull(graph, URIs.HasBottomRadius_Inverse);
+        HasCorners = getResourceOrNull(graph, URIs.HasCorners);
+        HasCorners_Inverse = getResourceOrNull(graph, URIs.HasCorners_Inverse);
+        HasHeight = getResourceOrNull(graph, URIs.HasHeight);
+        HasHeight_Inverse = getResourceOrNull(graph, URIs.HasHeight_Inverse);
+        HasMajorRadius = getResourceOrNull(graph, URIs.HasMajorRadius);
+        HasMajorRadius_Inverse = getResourceOrNull(graph, URIs.HasMajorRadius_Inverse);
+        HasMinorRadius = getResourceOrNull(graph, URIs.HasMinorRadius);
+        HasMinorRadius_Inverse = getResourceOrNull(graph, URIs.HasMinorRadius_Inverse);
+        HasRadius = getResourceOrNull(graph, URIs.HasRadius);
+        HasRadius_Inverse = getResourceOrNull(graph, URIs.HasRadius_Inverse);
+        HasSizingProperty = getResourceOrNull(graph, URIs.HasSizingProperty);
+        HasSizingProperty_Inverse = getResourceOrNull(graph, URIs.HasSizingProperty_Inverse);
+        HasTopRadius = getResourceOrNull(graph, URIs.HasTopRadius);
+        HasTopRadius_Inverse = getResourceOrNull(graph, URIs.HasTopRadius_Inverse);
+        HasXAxisMaximumSize = getResourceOrNull(graph, URIs.HasXAxisMaximumSize);
+        HasXAxisMaximumSize_Inverse = getResourceOrNull(graph, URIs.HasXAxisMaximumSize_Inverse);
+        HasXAxisMinimumSize = getResourceOrNull(graph, URIs.HasXAxisMinimumSize);
+        HasXAxisMinimumSize_Inverse = getResourceOrNull(graph, URIs.HasXAxisMinimumSize_Inverse);
+        HasXAxisSize = getResourceOrNull(graph, URIs.HasXAxisSize);
+        HasXAxisSize_Inverse = getResourceOrNull(graph, URIs.HasXAxisSize_Inverse);
+        HasYAxisSize = getResourceOrNull(graph, URIs.HasYAxisSize);
+        HasYAxisSize_Inverse = getResourceOrNull(graph, URIs.HasYAxisSize_Inverse);
+        HasZAxisMaximumSize = getResourceOrNull(graph, URIs.HasZAxisMaximumSize);
+        HasZAxisMaximumSize_Inverse = getResourceOrNull(graph, URIs.HasZAxisMaximumSize_Inverse);
+        HasZAxisMinimumSize = getResourceOrNull(graph, URIs.HasZAxisMinimumSize);
+        HasZAxisMinimumSize_Inverse = getResourceOrNull(graph, URIs.HasZAxisMinimumSize_Inverse);
+        HasZAxisSize = getResourceOrNull(graph, URIs.HasZAxisSize);
+        HasZAxisSize_Inverse = getResourceOrNull(graph, URIs.HasZAxisSize_Inverse);
+        Images = getResourceOrNull(graph, URIs.Images);
+        Images_Difference = getResourceOrNull(graph, URIs.Images_Difference);
+        Images_Intersection = getResourceOrNull(graph, URIs.Images_Intersection);
+        Images_Ruby = getResourceOrNull(graph, URIs.Images_Ruby);
+        Images_Union = getResourceOrNull(graph, URIs.Images_Union);
+        Intersection = getResourceOrNull(graph, URIs.Intersection);
+        Model = getResourceOrNull(graph, URIs.Model);
+        Primitive = getResourceOrNull(graph, URIs.Primitive);
+        RectangularSolid = getResourceOrNull(graph, URIs.RectangularSolid);
+        RegularPrism = getResourceOrNull(graph, URIs.RegularPrism);
+        Shape = getResourceOrNull(graph, URIs.Shape);
+        Sphere = getResourceOrNull(graph, URIs.Sphere);
+        Torus = getResourceOrNull(graph, URIs.Torus);
+        Union = getResourceOrNull(graph, URIs.Union);
+        hasChildShape = getResourceOrNull(graph, URIs.hasChildShape);
+        hasChildShape_Inverse = getResourceOrNull(graph, URIs.hasChildShape_Inverse);
+        hasPrimaryShape = getResourceOrNull(graph, URIs.hasPrimaryShape);
+        hasPrimaryShape_Inverse = getResourceOrNull(graph, URIs.hasPrimaryShape_Inverse);
+        hasSecondaryShape = getResourceOrNull(graph, URIs.hasSecondaryShape);
+        hasSecondaryShape_Inverse = getResourceOrNull(graph, URIs.hasSecondaryShape_Inverse);
+    }
+    
+    public static CSG getInstance(ReadGraph graph) {
+        Session session = graph.getSession();
+        CSG ret = session.peekService(CSG.class);
+        if(ret == null) {
+            QueryControl qc = graph.getService(QueryControl.class);
+            ret = new CSG(qc.getIndependentGraph(graph));
+            session.registerService(CSG.class, ret);
+        }
+        return ret;
+    }
+    
+    public static CSG getInstance(RequestProcessor session) throws DatabaseException {
+        CSG ret = session.peekService(CSG.class);
+        if(ret == null) {
+            ret = session.syncRequest(new Read<CSG>() {
+                public CSG perform(ReadGraph graph) throws DatabaseException {
+                    QueryControl qc = graph.getService(QueryControl.class);
+                    return new CSG(qc.getIndependentGraph(graph));
+                }
+            });
+            session.registerService(CSG.class, ret);
+        }
+        return ret;
+    }
+    
 }