]> gerrit.simantics Code Review - simantics/3d.git/blob - org.simantics.g3d.ontology/src/org/simantics/g3d/ontology/G3D.java
08c6a5daf06e1a8b131ae624857b81e24a04794f
[simantics/3d.git] / org.simantics.g3d.ontology / src / org / simantics / g3d / ontology / G3D.java
1 package org.simantics.g3d.ontology;\r
2 \r
3 import org.simantics.db.Resource;\r
4 import org.simantics.db.ReadGraph;\r
5 import org.simantics.db.request.Read;\r
6 import org.simantics.db.Session;\r
7 import org.simantics.db.exception.DatabaseException;\r
8 import org.simantics.db.service.QueryControl;\r
9 \r
10 public class G3D {\r
11     \r
12     public final Resource BaseNode;\r
13     public final Resource Node;\r
14     public final Resource Orientation;\r
15     public final Resource Position;\r
16     public final Resource RootNode;\r
17     public final Resource Tuple3D;\r
18     public final Resource Tuple4D;\r
19     public final Resource children;\r
20     public final Resource geometryDefinition;\r
21     public final Resource geometryDefinitionOf;\r
22     public final Resource hasNodeProperty;\r
23     public final Resource hasNodeProperty_Inverse;\r
24     public final Resource hasNonTransformation;\r
25     public final Resource hasNonTransformation_Inverse;\r
26     public final Resource hasOrientation;\r
27     public final Resource hasOrientation_Inverse;\r
28     public final Resource hasPosition;\r
29     public final Resource hasPosition_Inverse;\r
30     public final Resource hasTransformation;\r
31     public final Resource hasTransformation_Inverse;\r
32     public final Resource hasWorldOrientation;\r
33     public final Resource hasWorldOrientation_Inverse;\r
34     public final Resource hasWorldPosition;\r
35     public final Resource hasWorldPosition_Inverse;\r
36     public final Resource nodes;\r
37     public final Resource parent;\r
38     public final Resource parentNode;\r
39     public final Resource publishes;\r
40     public final Resource publishes_Inverse;\r
41         \r
42     public static class URIs {\r
43         public static final String BaseNode = "http://www.simantics.org/G3D-0.1/BaseNode";\r
44         public static final String Node = "http://www.simantics.org/G3D-0.1/Node";\r
45         public static final String Orientation = "http://www.simantics.org/G3D-0.1/Orientation";\r
46         public static final String Position = "http://www.simantics.org/G3D-0.1/Position";\r
47         public static final String RootNode = "http://www.simantics.org/G3D-0.1/RootNode";\r
48         public static final String Tuple3D = "http://www.simantics.org/G3D-0.1/Tuple3D";\r
49         public static final String Tuple4D = "http://www.simantics.org/G3D-0.1/Tuple4D";\r
50         public static final String children = "http://www.simantics.org/G3D-0.1/children";\r
51         public static final String geometryDefinition = "http://www.simantics.org/G3D-0.1/geometryDefinition";\r
52         public static final String geometryDefinitionOf = "http://www.simantics.org/G3D-0.1/geometryDefinitionOf";\r
53         public static final String hasNodeProperty = "http://www.simantics.org/G3D-0.1/hasNodeProperty";\r
54         public static final String hasNodeProperty_Inverse = "http://www.simantics.org/G3D-0.1/hasNodeProperty/Inverse";\r
55         public static final String hasNonTransformation = "http://www.simantics.org/G3D-0.1/hasNonTransformation";\r
56         public static final String hasNonTransformation_Inverse = "http://www.simantics.org/G3D-0.1/hasNonTransformation/Inverse";\r
57         public static final String hasOrientation = "http://www.simantics.org/G3D-0.1/hasOrientation";\r
58         public static final String hasOrientation_Inverse = "http://www.simantics.org/G3D-0.1/hasOrientation/Inverse";\r
59         public static final String hasPosition = "http://www.simantics.org/G3D-0.1/hasPosition";\r
60         public static final String hasPosition_Inverse = "http://www.simantics.org/G3D-0.1/hasPosition/Inverse";\r
61         public static final String hasTransformation = "http://www.simantics.org/G3D-0.1/hasTransformation";\r
62         public static final String hasTransformation_Inverse = "http://www.simantics.org/G3D-0.1/hasTransformation/Inverse";\r
63         public static final String hasWorldOrientation = "http://www.simantics.org/G3D-0.1/hasWorldOrientation";\r
64         public static final String hasWorldOrientation_Inverse = "http://www.simantics.org/G3D-0.1/hasWorldOrientation/Inverse";\r
65         public static final String hasWorldPosition = "http://www.simantics.org/G3D-0.1/hasWorldPosition";\r
66         public static final String hasWorldPosition_Inverse = "http://www.simantics.org/G3D-0.1/hasWorldPosition/Inverse";\r
67         public static final String nodes = "http://www.simantics.org/G3D-0.1/nodes";\r
68         public static final String parent = "http://www.simantics.org/G3D-0.1/parent";\r
69         public static final String parentNode = "http://www.simantics.org/G3D-0.1/parentNode";\r
70         public static final String publishes = "http://www.simantics.org/G3D-0.1/publishes";\r
71         public static final String publishes_Inverse = "http://www.simantics.org/G3D-0.1/publishes/Inverse";\r
72     }\r
73     \r
74     public static Resource getResourceOrNull(ReadGraph graph, String uri) {\r
75         try {\r
76             return graph.getResource(uri);\r
77         } catch(DatabaseException e) {\r
78             System.err.println(e.getMessage());\r
79             return null;\r
80         }\r
81     }\r
82     \r
83     public G3D(ReadGraph graph) {\r
84         BaseNode = getResourceOrNull(graph, URIs.BaseNode);\r
85         Node = getResourceOrNull(graph, URIs.Node);\r
86         Orientation = getResourceOrNull(graph, URIs.Orientation);\r
87         Position = getResourceOrNull(graph, URIs.Position);\r
88         RootNode = getResourceOrNull(graph, URIs.RootNode);\r
89         Tuple3D = getResourceOrNull(graph, URIs.Tuple3D);\r
90         Tuple4D = getResourceOrNull(graph, URIs.Tuple4D);\r
91         children = getResourceOrNull(graph, URIs.children);\r
92         geometryDefinition = getResourceOrNull(graph, URIs.geometryDefinition);\r
93         geometryDefinitionOf = getResourceOrNull(graph, URIs.geometryDefinitionOf);\r
94         hasNodeProperty = getResourceOrNull(graph, URIs.hasNodeProperty);\r
95         hasNodeProperty_Inverse = getResourceOrNull(graph, URIs.hasNodeProperty_Inverse);\r
96         hasNonTransformation = getResourceOrNull(graph, URIs.hasNonTransformation);\r
97         hasNonTransformation_Inverse = getResourceOrNull(graph, URIs.hasNonTransformation_Inverse);\r
98         hasOrientation = getResourceOrNull(graph, URIs.hasOrientation);\r
99         hasOrientation_Inverse = getResourceOrNull(graph, URIs.hasOrientation_Inverse);\r
100         hasPosition = getResourceOrNull(graph, URIs.hasPosition);\r
101         hasPosition_Inverse = getResourceOrNull(graph, URIs.hasPosition_Inverse);\r
102         hasTransformation = getResourceOrNull(graph, URIs.hasTransformation);\r
103         hasTransformation_Inverse = getResourceOrNull(graph, URIs.hasTransformation_Inverse);\r
104         hasWorldOrientation = getResourceOrNull(graph, URIs.hasWorldOrientation);\r
105         hasWorldOrientation_Inverse = getResourceOrNull(graph, URIs.hasWorldOrientation_Inverse);\r
106         hasWorldPosition = getResourceOrNull(graph, URIs.hasWorldPosition);\r
107         hasWorldPosition_Inverse = getResourceOrNull(graph, URIs.hasWorldPosition_Inverse);\r
108         nodes = getResourceOrNull(graph, URIs.nodes);\r
109         parent = getResourceOrNull(graph, URIs.parent);\r
110         parentNode = getResourceOrNull(graph, URIs.parentNode);\r
111         publishes = getResourceOrNull(graph, URIs.publishes);\r
112         publishes_Inverse = getResourceOrNull(graph, URIs.publishes_Inverse);\r
113     }\r
114     \r
115     public static G3D getInstance(ReadGraph graph) {\r
116         Session session = graph.getSession();\r
117         G3D ret = session.peekService(G3D.class);\r
118         if(ret == null) {\r
119             QueryControl qc = graph.getService(QueryControl.class);\r
120             ret = new G3D(qc.getIndependentGraph(graph));\r
121             session.registerService(G3D.class, ret);\r
122         }\r
123         return ret;\r
124     }\r
125     \r
126     public static G3D getInstance(Session session) throws DatabaseException {\r
127         G3D ret = session.peekService(G3D.class);\r
128         if(ret == null) {\r
129             ret = session.syncRequest(new Read<G3D>() {\r
130                 public G3D perform(ReadGraph graph) throws DatabaseException {\r
131                     QueryControl qc = graph.getService(QueryControl.class);\r
132                     return new G3D(qc.getIndependentGraph(graph));\r
133                 }\r
134             });\r
135             session.registerService(G3D.class, ret);\r
136         }\r
137         return ret;\r
138     }\r
139     \r
140 }\r
141 \r