1 /*******************************************************************************
\r
2 * Copyright (c) 2012, 2013 Association for Decentralized Information Management in
\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
10 * VTT Technical Research Centre of Finland - initial API and implementation
\r
11 *******************************************************************************/
\r
12 package org.simantics.g3d.ontology;
\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
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
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
85 public static Resource getResourceOrNull(ReadGraph graph, String uri) {
\r
87 return graph.getResource(uri);
\r
88 } catch(DatabaseException e) {
\r
89 System.err.println(e.getMessage());
\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
126 public static G3D getInstance(ReadGraph graph) {
\r
127 Session session = graph.getSession();
\r
128 G3D ret = session.peekService(G3D.class);
\r
130 QueryControl qc = graph.getService(QueryControl.class);
\r
131 ret = new G3D(qc.getIndependentGraph(graph));
\r
132 session.registerService(G3D.class, ret);
\r
137 public static G3D getInstance(Session session) throws DatabaseException {
\r
138 G3D ret = session.peekService(G3D.class);
\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
146 session.registerService(G3D.class, ret);
\r