]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - 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
index 2efbbb01b4182cb2d47c13159995a4404c93b835..558522e3c56928407b28e372456bee900b68b98c 100644 (file)
-/*******************************************************************************\r
- * Copyright (c) 2012, 2013 Association for Decentralized Information Management in\r
- * Industry THTH ry.\r
- * All rights reserved. This program and the accompanying materials\r
- * are made available under the terms of the Eclipse Public License v1.0\r
- * which accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- *     VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
-package org.simantics.g3d.csg.ontology;\r
-\r
-import org.simantics.db.RequestProcessor;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.request.Read;\r
-import org.simantics.db.Session;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.db.service.QueryControl;\r
-\r
-public class CSG {\r
-    \r
-    public final Resource Barrel;\r
-    public final Resource BooleanOperation;\r
-    public final Resource Box;\r
-    public final Resource CSGBrowseContext;\r
-    public final Resource CSGBrowseContext_ActiveLabelDecorationRule;\r
-    public final Resource CSGBrowseContext_RunLabelRule;\r
-    public final Resource CSGBrowseContext_ShapeTabContribution;\r
-    public final Resource Cone;\r
-    public final Resource Cylinder;\r
-    public final Resource Difference;\r
-    public final Resource EllipticCylinder;\r
-    public final Resource HasBottomRadius;\r
-    public final Resource HasBottomRadius_Inverse;\r
-    public final Resource HasCorners;\r
-    public final Resource HasCorners_Inverse;\r
-    public final Resource HasHeight;\r
-    public final Resource HasHeight_Inverse;\r
-    public final Resource HasMajorRadius;\r
-    public final Resource HasMajorRadius_Inverse;\r
-    public final Resource HasMinorRadius;\r
-    public final Resource HasMinorRadius_Inverse;\r
-    public final Resource HasRadius;\r
-    public final Resource HasRadius_Inverse;\r
-    public final Resource HasSizingProperty;\r
-    public final Resource HasSizingProperty_Inverse;\r
-    public final Resource HasTopRadius;\r
-    public final Resource HasTopRadius_Inverse;\r
-    public final Resource HasXAxisMaximumSize;\r
-    public final Resource HasXAxisMaximumSize_Inverse;\r
-    public final Resource HasXAxisMinimumSize;\r
-    public final Resource HasXAxisMinimumSize_Inverse;\r
-    public final Resource HasXAxisSize;\r
-    public final Resource HasXAxisSize_Inverse;\r
-    public final Resource HasYAxisSize;\r
-    public final Resource HasYAxisSize_Inverse;\r
-    public final Resource HasZAxisMaximumSize;\r
-    public final Resource HasZAxisMaximumSize_Inverse;\r
-    public final Resource HasZAxisMinimumSize;\r
-    public final Resource HasZAxisMinimumSize_Inverse;\r
-    public final Resource HasZAxisSize;\r
-    public final Resource HasZAxisSize_Inverse;\r
-    public final Resource Images;\r
-    public final Resource Images_Difference;\r
-    public final Resource Images_Intersection;\r
-    public final Resource Images_Ruby;\r
-    public final Resource Images_Union;\r
-    public final Resource Intersection;\r
-    public final Resource Model;\r
-    public final Resource Primitive;\r
-    public final Resource RectangularSolid;\r
-    public final Resource RegularPrism;\r
-    public final Resource Shape;\r
-    public final Resource Sphere;\r
-    public final Resource Torus;\r
-    public final Resource Union;\r
-    public final Resource hasChildShape;\r
-    public final Resource hasChildShape_Inverse;\r
-    public final Resource hasPrimaryShape;\r
-    public final Resource hasPrimaryShape_Inverse;\r
-    public final Resource hasSecondaryShape;\r
-    public final Resource hasSecondaryShape_Inverse;\r
-        \r
-    public static class URIs {\r
-        public static final String Barrel = "http://www.simantics.org/CSG-0.1/Barrel";\r
-        public static final String BooleanOperation = "http://www.simantics.org/CSG-0.1/BooleanOperation";\r
-        public static final String Box = "http://www.simantics.org/CSG-0.1/Box";\r
-        public static final String CSGBrowseContext = "http://www.simantics.org/CSG-0.1/CSGBrowseContext";\r
-        public static final String CSGBrowseContext_ActiveLabelDecorationRule = "http://www.simantics.org/CSG-0.1/CSGBrowseContext/ActiveLabelDecorationRule";\r
-        public static final String CSGBrowseContext_RunLabelRule = "http://www.simantics.org/CSG-0.1/CSGBrowseContext/RunLabelRule";\r
-        public static final String CSGBrowseContext_ShapeTabContribution = "http://www.simantics.org/CSG-0.1/CSGBrowseContext/ShapeTabContribution";\r
-        public static final String Cone = "http://www.simantics.org/CSG-0.1/Cone";\r
-        public static final String Cylinder = "http://www.simantics.org/CSG-0.1/Cylinder";\r
-        public static final String Difference = "http://www.simantics.org/CSG-0.1/Difference";\r
-        public static final String EllipticCylinder = "http://www.simantics.org/CSG-0.1/EllipticCylinder";\r
-        public static final String HasBottomRadius = "http://www.simantics.org/CSG-0.1/HasBottomRadius";\r
-        public static final String HasBottomRadius_Inverse = "http://www.simantics.org/CSG-0.1/HasBottomRadius/Inverse";\r
-        public static final String HasCorners = "http://www.simantics.org/CSG-0.1/HasCorners";\r
-        public static final String HasCorners_Inverse = "http://www.simantics.org/CSG-0.1/HasCorners/Inverse";\r
-        public static final String HasHeight = "http://www.simantics.org/CSG-0.1/HasHeight";\r
-        public static final String HasHeight_Inverse = "http://www.simantics.org/CSG-0.1/HasHeight/Inverse";\r
-        public static final String HasMajorRadius = "http://www.simantics.org/CSG-0.1/HasMajorRadius";\r
-        public static final String HasMajorRadius_Inverse = "http://www.simantics.org/CSG-0.1/HasMajorRadius/Inverse";\r
-        public static final String HasMinorRadius = "http://www.simantics.org/CSG-0.1/HasMinorRadius";\r
-        public static final String HasMinorRadius_Inverse = "http://www.simantics.org/CSG-0.1/HasMinorRadius/Inverse";\r
-        public static final String HasRadius = "http://www.simantics.org/CSG-0.1/HasRadius";\r
-        public static final String HasRadius_Inverse = "http://www.simantics.org/CSG-0.1/HasRadius/Inverse";\r
-        public static final String HasSizingProperty = "http://www.simantics.org/CSG-0.1/HasSizingProperty";\r
-        public static final String HasSizingProperty_Inverse = "http://www.simantics.org/CSG-0.1/HasSizingProperty/Inverse";\r
-        public static final String HasTopRadius = "http://www.simantics.org/CSG-0.1/HasTopRadius";\r
-        public static final String HasTopRadius_Inverse = "http://www.simantics.org/CSG-0.1/HasTopRadius/Inverse";\r
-        public static final String HasXAxisMaximumSize = "http://www.simantics.org/CSG-0.1/HasXAxisMaximumSize";\r
-        public static final String HasXAxisMaximumSize_Inverse = "http://www.simantics.org/CSG-0.1/HasXAxisMaximumSize/Inverse";\r
-        public static final String HasXAxisMinimumSize = "http://www.simantics.org/CSG-0.1/HasXAxisMinimumSize";\r
-        public static final String HasXAxisMinimumSize_Inverse = "http://www.simantics.org/CSG-0.1/HasXAxisMinimumSize/Inverse";\r
-        public static final String HasXAxisSize = "http://www.simantics.org/CSG-0.1/HasXAxisSize";\r
-        public static final String HasXAxisSize_Inverse = "http://www.simantics.org/CSG-0.1/HasXAxisSize/Inverse";\r
-        public static final String HasYAxisSize = "http://www.simantics.org/CSG-0.1/HasYAxisSize";\r
-        public static final String HasYAxisSize_Inverse = "http://www.simantics.org/CSG-0.1/HasYAxisSize/Inverse";\r
-        public static final String HasZAxisMaximumSize = "http://www.simantics.org/CSG-0.1/HasZAxisMaximumSize";\r
-        public static final String HasZAxisMaximumSize_Inverse = "http://www.simantics.org/CSG-0.1/HasZAxisMaximumSize/Inverse";\r
-        public static final String HasZAxisMinimumSize = "http://www.simantics.org/CSG-0.1/HasZAxisMinimumSize";\r
-        public static final String HasZAxisMinimumSize_Inverse = "http://www.simantics.org/CSG-0.1/HasZAxisMinimumSize/Inverse";\r
-        public static final String HasZAxisSize = "http://www.simantics.org/CSG-0.1/HasZAxisSize";\r
-        public static final String HasZAxisSize_Inverse = "http://www.simantics.org/CSG-0.1/HasZAxisSize/Inverse";\r
-        public static final String Images = "http://www.simantics.org/CSG-0.1/Images";\r
-        public static final String Images_Difference = "http://www.simantics.org/CSG-0.1/Images/Difference";\r
-        public static final String Images_Intersection = "http://www.simantics.org/CSG-0.1/Images/Intersection";\r
-        public static final String Images_Ruby = "http://www.simantics.org/CSG-0.1/Images/Ruby";\r
-        public static final String Images_Union = "http://www.simantics.org/CSG-0.1/Images/Union";\r
-        public static final String Intersection = "http://www.simantics.org/CSG-0.1/Intersection";\r
-        public static final String Model = "http://www.simantics.org/CSG-0.1/Model";\r
-        public static final String Primitive = "http://www.simantics.org/CSG-0.1/Primitive";\r
-        public static final String RectangularSolid = "http://www.simantics.org/CSG-0.1/RectangularSolid";\r
-        public static final String RegularPrism = "http://www.simantics.org/CSG-0.1/RegularPrism";\r
-        public static final String Shape = "http://www.simantics.org/CSG-0.1/Shape";\r
-        public static final String Sphere = "http://www.simantics.org/CSG-0.1/Sphere";\r
-        public static final String Torus = "http://www.simantics.org/CSG-0.1/Torus";\r
-        public static final String Union = "http://www.simantics.org/CSG-0.1/Union";\r
-        public static final String hasChildShape = "http://www.simantics.org/CSG-0.1/hasChildShape";\r
-        public static final String hasChildShape_Inverse = "http://www.simantics.org/CSG-0.1/hasChildShape/Inverse";\r
-        public static final String hasPrimaryShape = "http://www.simantics.org/CSG-0.1/hasPrimaryShape";\r
-        public static final String hasPrimaryShape_Inverse = "http://www.simantics.org/CSG-0.1/hasPrimaryShape/Inverse";\r
-        public static final String hasSecondaryShape = "http://www.simantics.org/CSG-0.1/hasSecondaryShape";\r
-        public static final String hasSecondaryShape_Inverse = "http://www.simantics.org/CSG-0.1/hasSecondaryShape/Inverse";\r
-    }\r
-    \r
-    public static Resource getResourceOrNull(ReadGraph graph, String uri) {\r
-        try {\r
-            return graph.getResource(uri);\r
-        } catch(DatabaseException e) {\r
-            System.err.println(e.getMessage());\r
-            return null;\r
-        }\r
-    }\r
-    \r
-    public CSG(ReadGraph graph) {\r
-        Barrel = getResourceOrNull(graph, URIs.Barrel);\r
-        BooleanOperation = getResourceOrNull(graph, URIs.BooleanOperation);\r
-        Box = getResourceOrNull(graph, URIs.Box);\r
-        CSGBrowseContext = getResourceOrNull(graph, URIs.CSGBrowseContext);\r
-        CSGBrowseContext_ActiveLabelDecorationRule = getResourceOrNull(graph, URIs.CSGBrowseContext_ActiveLabelDecorationRule);\r
-        CSGBrowseContext_RunLabelRule = getResourceOrNull(graph, URIs.CSGBrowseContext_RunLabelRule);\r
-        CSGBrowseContext_ShapeTabContribution = getResourceOrNull(graph, URIs.CSGBrowseContext_ShapeTabContribution);\r
-        Cone = getResourceOrNull(graph, URIs.Cone);\r
-        Cylinder = getResourceOrNull(graph, URIs.Cylinder);\r
-        Difference = getResourceOrNull(graph, URIs.Difference);\r
-        EllipticCylinder = getResourceOrNull(graph, URIs.EllipticCylinder);\r
-        HasBottomRadius = getResourceOrNull(graph, URIs.HasBottomRadius);\r
-        HasBottomRadius_Inverse = getResourceOrNull(graph, URIs.HasBottomRadius_Inverse);\r
-        HasCorners = getResourceOrNull(graph, URIs.HasCorners);\r
-        HasCorners_Inverse = getResourceOrNull(graph, URIs.HasCorners_Inverse);\r
-        HasHeight = getResourceOrNull(graph, URIs.HasHeight);\r
-        HasHeight_Inverse = getResourceOrNull(graph, URIs.HasHeight_Inverse);\r
-        HasMajorRadius = getResourceOrNull(graph, URIs.HasMajorRadius);\r
-        HasMajorRadius_Inverse = getResourceOrNull(graph, URIs.HasMajorRadius_Inverse);\r
-        HasMinorRadius = getResourceOrNull(graph, URIs.HasMinorRadius);\r
-        HasMinorRadius_Inverse = getResourceOrNull(graph, URIs.HasMinorRadius_Inverse);\r
-        HasRadius = getResourceOrNull(graph, URIs.HasRadius);\r
-        HasRadius_Inverse = getResourceOrNull(graph, URIs.HasRadius_Inverse);\r
-        HasSizingProperty = getResourceOrNull(graph, URIs.HasSizingProperty);\r
-        HasSizingProperty_Inverse = getResourceOrNull(graph, URIs.HasSizingProperty_Inverse);\r
-        HasTopRadius = getResourceOrNull(graph, URIs.HasTopRadius);\r
-        HasTopRadius_Inverse = getResourceOrNull(graph, URIs.HasTopRadius_Inverse);\r
-        HasXAxisMaximumSize = getResourceOrNull(graph, URIs.HasXAxisMaximumSize);\r
-        HasXAxisMaximumSize_Inverse = getResourceOrNull(graph, URIs.HasXAxisMaximumSize_Inverse);\r
-        HasXAxisMinimumSize = getResourceOrNull(graph, URIs.HasXAxisMinimumSize);\r
-        HasXAxisMinimumSize_Inverse = getResourceOrNull(graph, URIs.HasXAxisMinimumSize_Inverse);\r
-        HasXAxisSize = getResourceOrNull(graph, URIs.HasXAxisSize);\r
-        HasXAxisSize_Inverse = getResourceOrNull(graph, URIs.HasXAxisSize_Inverse);\r
-        HasYAxisSize = getResourceOrNull(graph, URIs.HasYAxisSize);\r
-        HasYAxisSize_Inverse = getResourceOrNull(graph, URIs.HasYAxisSize_Inverse);\r
-        HasZAxisMaximumSize = getResourceOrNull(graph, URIs.HasZAxisMaximumSize);\r
-        HasZAxisMaximumSize_Inverse = getResourceOrNull(graph, URIs.HasZAxisMaximumSize_Inverse);\r
-        HasZAxisMinimumSize = getResourceOrNull(graph, URIs.HasZAxisMinimumSize);\r
-        HasZAxisMinimumSize_Inverse = getResourceOrNull(graph, URIs.HasZAxisMinimumSize_Inverse);\r
-        HasZAxisSize = getResourceOrNull(graph, URIs.HasZAxisSize);\r
-        HasZAxisSize_Inverse = getResourceOrNull(graph, URIs.HasZAxisSize_Inverse);\r
-        Images = getResourceOrNull(graph, URIs.Images);\r
-        Images_Difference = getResourceOrNull(graph, URIs.Images_Difference);\r
-        Images_Intersection = getResourceOrNull(graph, URIs.Images_Intersection);\r
-        Images_Ruby = getResourceOrNull(graph, URIs.Images_Ruby);\r
-        Images_Union = getResourceOrNull(graph, URIs.Images_Union);\r
-        Intersection = getResourceOrNull(graph, URIs.Intersection);\r
-        Model = getResourceOrNull(graph, URIs.Model);\r
-        Primitive = getResourceOrNull(graph, URIs.Primitive);\r
-        RectangularSolid = getResourceOrNull(graph, URIs.RectangularSolid);\r
-        RegularPrism = getResourceOrNull(graph, URIs.RegularPrism);\r
-        Shape = getResourceOrNull(graph, URIs.Shape);\r
-        Sphere = getResourceOrNull(graph, URIs.Sphere);\r
-        Torus = getResourceOrNull(graph, URIs.Torus);\r
-        Union = getResourceOrNull(graph, URIs.Union);\r
-        hasChildShape = getResourceOrNull(graph, URIs.hasChildShape);\r
-        hasChildShape_Inverse = getResourceOrNull(graph, URIs.hasChildShape_Inverse);\r
-        hasPrimaryShape = getResourceOrNull(graph, URIs.hasPrimaryShape);\r
-        hasPrimaryShape_Inverse = getResourceOrNull(graph, URIs.hasPrimaryShape_Inverse);\r
-        hasSecondaryShape = getResourceOrNull(graph, URIs.hasSecondaryShape);\r
-        hasSecondaryShape_Inverse = getResourceOrNull(graph, URIs.hasSecondaryShape_Inverse);\r
-    }\r
-    \r
-    public static CSG getInstance(ReadGraph graph) {\r
-        Session session = graph.getSession();\r
-        CSG ret = session.peekService(CSG.class);\r
-        if(ret == null) {\r
-            QueryControl qc = graph.getService(QueryControl.class);\r
-            ret = new CSG(qc.getIndependentGraph(graph));\r
-            session.registerService(CSG.class, ret);\r
-        }\r
-        return ret;\r
-    }\r
-    \r
-    public static CSG getInstance(RequestProcessor session) throws DatabaseException {\r
-        CSG ret = session.peekService(CSG.class);\r
-        if(ret == null) {\r
-            ret = session.syncRequest(new Read<CSG>() {\r
-                public CSG perform(ReadGraph graph) throws DatabaseException {\r
-                    QueryControl qc = graph.getService(QueryControl.class);\r
-                    return new CSG(qc.getIndependentGraph(graph));\r
-                }\r
-            });\r
-            session.registerService(CSG.class, ret);\r
-        }\r
-        return ret;\r
-    }\r
-    \r
-}\r
-\r
+package org.simantics.g3d.csg.ontology;
+
+import org.simantics.db.RequestProcessor;
+import org.simantics.db.Resource;
+import org.simantics.db.ReadGraph;
+import org.simantics.db.request.Read;
+import org.simantics.db.Session;
+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;
+    }
+    
+}
+