]> gerrit.simantics Code Review - simantics/3d.git/blob - org.simantics.g3d.ontology/src/org/simantics/g3d/ontology/G3D.java
Copyrights
[simantics/3d.git] / org.simantics.g3d.ontology / src / org / simantics / g3d / ontology / G3D.java
1 /*******************************************************************************\r
2  * Copyright (c) 2012, 2013 Association for Decentralized Information Management in\r
3  * Industry THTH ry.\r
4  * All rights reserved. This program and the accompanying materials\r
5  * are made available under the terms of the Eclipse Public License v1.0\r
6  * which accompanies this distribution, and is available at\r
7  * http://www.eclipse.org/legal/epl-v10.html\r
8  *\r
9  * Contributors:\r
10  *     VTT Technical Research Centre of Finland - initial API and implementation\r
11  *******************************************************************************/\r
12 package org.simantics.g3d.ontology;\r
13 \r
14 import org.simantics.db.Resource;\r
15 import org.simantics.db.ReadGraph;\r
16 import org.simantics.db.request.Read;\r
17 import org.simantics.db.Session;\r
18 import org.simantics.db.exception.DatabaseException;\r
19 import org.simantics.db.service.QueryControl;\r
20 \r
21 public class G3D {\r
22     \r
23     public final Resource BaseNode;\r
24     public final Resource Node;\r
25     public final Resource Orientation;\r
26     public final Resource Position;\r
27     public final Resource RootNode;\r
28     public final Resource Tuple3D;\r
29     public final Resource Tuple4D;\r
30     public final Resource children;\r
31     public final Resource geometryDefinition;\r
32     public final Resource geometryDefinitionOf;\r
33     public final Resource hasNodeProperty;\r
34     public final Resource hasNodeProperty_Inverse;\r
35     public final Resource hasNonTransformation;\r
36     public final Resource hasNonTransformation_Inverse;\r
37     public final Resource hasOrientation;\r
38     public final Resource hasOrientation_Inverse;\r
39     public final Resource hasPosition;\r
40     public final Resource hasPosition_Inverse;\r
41     public final Resource hasTransformation;\r
42     public final Resource hasTransformation_Inverse;\r
43     public final Resource hasWorldOrientation;\r
44     public final Resource hasWorldOrientation_Inverse;\r
45     public final Resource hasWorldPosition;\r
46     public final Resource hasWorldPosition_Inverse;\r
47     public final Resource nodes;\r
48     public final Resource parent;\r
49     public final Resource parentNode;\r
50     public final Resource publishes;\r
51     public final Resource publishes_Inverse;\r
52         \r
53     public static class URIs {\r
54         public static final String BaseNode = "http://www.simantics.org/G3D-0.1/BaseNode";\r
55         public static final String Node = "http://www.simantics.org/G3D-0.1/Node";\r
56         public static final String Orientation = "http://www.simantics.org/G3D-0.1/Orientation";\r
57         public static final String Position = "http://www.simantics.org/G3D-0.1/Position";\r
58         public static final String RootNode = "http://www.simantics.org/G3D-0.1/RootNode";\r
59         public static final String Tuple3D = "http://www.simantics.org/G3D-0.1/Tuple3D";\r
60         public static final String Tuple4D = "http://www.simantics.org/G3D-0.1/Tuple4D";\r
61         public static final String children = "http://www.simantics.org/G3D-0.1/children";\r
62         public static final String geometryDefinition = "http://www.simantics.org/G3D-0.1/geometryDefinition";\r
63         public static final String geometryDefinitionOf = "http://www.simantics.org/G3D-0.1/geometryDefinitionOf";\r
64         public static final String hasNodeProperty = "http://www.simantics.org/G3D-0.1/hasNodeProperty";\r
65         public static final String hasNodeProperty_Inverse = "http://www.simantics.org/G3D-0.1/hasNodeProperty/Inverse";\r
66         public static final String hasNonTransformation = "http://www.simantics.org/G3D-0.1/hasNonTransformation";\r
67         public static final String hasNonTransformation_Inverse = "http://www.simantics.org/G3D-0.1/hasNonTransformation/Inverse";\r
68         public static final String hasOrientation = "http://www.simantics.org/G3D-0.1/hasOrientation";\r
69         public static final String hasOrientation_Inverse = "http://www.simantics.org/G3D-0.1/hasOrientation/Inverse";\r
70         public static final String hasPosition = "http://www.simantics.org/G3D-0.1/hasPosition";\r
71         public static final String hasPosition_Inverse = "http://www.simantics.org/G3D-0.1/hasPosition/Inverse";\r
72         public static final String hasTransformation = "http://www.simantics.org/G3D-0.1/hasTransformation";\r
73         public static final String hasTransformation_Inverse = "http://www.simantics.org/G3D-0.1/hasTransformation/Inverse";\r
74         public static final String hasWorldOrientation = "http://www.simantics.org/G3D-0.1/hasWorldOrientation";\r
75         public static final String hasWorldOrientation_Inverse = "http://www.simantics.org/G3D-0.1/hasWorldOrientation/Inverse";\r
76         public static final String hasWorldPosition = "http://www.simantics.org/G3D-0.1/hasWorldPosition";\r
77         public static final String hasWorldPosition_Inverse = "http://www.simantics.org/G3D-0.1/hasWorldPosition/Inverse";\r
78         public static final String nodes = "http://www.simantics.org/G3D-0.1/nodes";\r
79         public static final String parent = "http://www.simantics.org/G3D-0.1/parent";\r
80         public static final String parentNode = "http://www.simantics.org/G3D-0.1/parentNode";\r
81         public static final String publishes = "http://www.simantics.org/G3D-0.1/publishes";\r
82         public static final String publishes_Inverse = "http://www.simantics.org/G3D-0.1/publishes/Inverse";\r
83     }\r
84     \r
85     public static Resource getResourceOrNull(ReadGraph graph, String uri) {\r
86         try {\r
87             return graph.getResource(uri);\r
88         } catch(DatabaseException e) {\r
89             System.err.println(e.getMessage());\r
90             return null;\r
91         }\r
92     }\r
93     \r
94     public G3D(ReadGraph graph) {\r
95         BaseNode = getResourceOrNull(graph, URIs.BaseNode);\r
96         Node = getResourceOrNull(graph, URIs.Node);\r
97         Orientation = getResourceOrNull(graph, URIs.Orientation);\r
98         Position = getResourceOrNull(graph, URIs.Position);\r
99         RootNode = getResourceOrNull(graph, URIs.RootNode);\r
100         Tuple3D = getResourceOrNull(graph, URIs.Tuple3D);\r
101         Tuple4D = getResourceOrNull(graph, URIs.Tuple4D);\r
102         children = getResourceOrNull(graph, URIs.children);\r
103         geometryDefinition = getResourceOrNull(graph, URIs.geometryDefinition);\r
104         geometryDefinitionOf = getResourceOrNull(graph, URIs.geometryDefinitionOf);\r
105         hasNodeProperty = getResourceOrNull(graph, URIs.hasNodeProperty);\r
106         hasNodeProperty_Inverse = getResourceOrNull(graph, URIs.hasNodeProperty_Inverse);\r
107         hasNonTransformation = getResourceOrNull(graph, URIs.hasNonTransformation);\r
108         hasNonTransformation_Inverse = getResourceOrNull(graph, URIs.hasNonTransformation_Inverse);\r
109         hasOrientation = getResourceOrNull(graph, URIs.hasOrientation);\r
110         hasOrientation_Inverse = getResourceOrNull(graph, URIs.hasOrientation_Inverse);\r
111         hasPosition = getResourceOrNull(graph, URIs.hasPosition);\r
112         hasPosition_Inverse = getResourceOrNull(graph, URIs.hasPosition_Inverse);\r
113         hasTransformation = getResourceOrNull(graph, URIs.hasTransformation);\r
114         hasTransformation_Inverse = getResourceOrNull(graph, URIs.hasTransformation_Inverse);\r
115         hasWorldOrientation = getResourceOrNull(graph, URIs.hasWorldOrientation);\r
116         hasWorldOrientation_Inverse = getResourceOrNull(graph, URIs.hasWorldOrientation_Inverse);\r
117         hasWorldPosition = getResourceOrNull(graph, URIs.hasWorldPosition);\r
118         hasWorldPosition_Inverse = getResourceOrNull(graph, URIs.hasWorldPosition_Inverse);\r
119         nodes = getResourceOrNull(graph, URIs.nodes);\r
120         parent = getResourceOrNull(graph, URIs.parent);\r
121         parentNode = getResourceOrNull(graph, URIs.parentNode);\r
122         publishes = getResourceOrNull(graph, URIs.publishes);\r
123         publishes_Inverse = getResourceOrNull(graph, URIs.publishes_Inverse);\r
124     }\r
125     \r
126     public static G3D getInstance(ReadGraph graph) {\r
127         Session session = graph.getSession();\r
128         G3D ret = session.peekService(G3D.class);\r
129         if(ret == null) {\r
130             QueryControl qc = graph.getService(QueryControl.class);\r
131             ret = new G3D(qc.getIndependentGraph(graph));\r
132             session.registerService(G3D.class, ret);\r
133         }\r
134         return ret;\r
135     }\r
136     \r
137     public static G3D getInstance(Session session) throws DatabaseException {\r
138         G3D ret = session.peekService(G3D.class);\r
139         if(ret == null) {\r
140             ret = session.syncRequest(new Read<G3D>() {\r
141                 public G3D perform(ReadGraph graph) throws DatabaseException {\r
142                     QueryControl qc = graph.getService(QueryControl.class);\r
143                     return new G3D(qc.getIndependentGraph(graph));\r
144                 }\r
145             });\r
146             session.registerService(G3D.class, ret);\r
147         }\r
148         return ret;\r
149     }\r
150     \r
151 }\r
152 \r