/******************************************************************************* * Copyright (c) 2012, 2013 Association for Decentralized Information Management in * Industry THTH ry. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * VTT Technical Research Centre of Finland - initial API and implementation *******************************************************************************/ package org.simantics.g3d.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 G3D { public final Resource BaseNode; public final Resource Node; public final Resource Orientation; public final Resource Position; public final Resource RootNode; public final Resource Tuple3D; public final Resource Tuple4D; public final Resource children; public final Resource geometryDefinition; public final Resource geometryDefinitionOf; public final Resource hasNodeProperty; public final Resource hasNodeProperty_Inverse; public final Resource hasNonTransformation; public final Resource hasNonTransformation_Inverse; public final Resource hasOrientation; public final Resource hasOrientation_Inverse; public final Resource hasPosition; public final Resource hasPosition_Inverse; public final Resource hasTransformation; public final Resource hasTransformation_Inverse; public final Resource hasWorldOrientation; public final Resource hasWorldOrientation_Inverse; public final Resource hasWorldPosition; public final Resource hasWorldPosition_Inverse; public final Resource nodes; public final Resource parent; public final Resource parentNode; public final Resource publishes; public final Resource publishes_Inverse; public static class URIs { public static final String BaseNode = "http://www.simantics.org/G3D-0.1/BaseNode"; public static final String Node = "http://www.simantics.org/G3D-0.1/Node"; public static final String Orientation = "http://www.simantics.org/G3D-0.1/Orientation"; public static final String Position = "http://www.simantics.org/G3D-0.1/Position"; public static final String RootNode = "http://www.simantics.org/G3D-0.1/RootNode"; public static final String Tuple3D = "http://www.simantics.org/G3D-0.1/Tuple3D"; public static final String Tuple4D = "http://www.simantics.org/G3D-0.1/Tuple4D"; public static final String children = "http://www.simantics.org/G3D-0.1/children"; public static final String geometryDefinition = "http://www.simantics.org/G3D-0.1/geometryDefinition"; public static final String geometryDefinitionOf = "http://www.simantics.org/G3D-0.1/geometryDefinitionOf"; public static final String hasNodeProperty = "http://www.simantics.org/G3D-0.1/hasNodeProperty"; public static final String hasNodeProperty_Inverse = "http://www.simantics.org/G3D-0.1/hasNodeProperty/Inverse"; public static final String hasNonTransformation = "http://www.simantics.org/G3D-0.1/hasNonTransformation"; public static final String hasNonTransformation_Inverse = "http://www.simantics.org/G3D-0.1/hasNonTransformation/Inverse"; public static final String hasOrientation = "http://www.simantics.org/G3D-0.1/hasOrientation"; public static final String hasOrientation_Inverse = "http://www.simantics.org/G3D-0.1/hasOrientation/Inverse"; public static final String hasPosition = "http://www.simantics.org/G3D-0.1/hasPosition"; public static final String hasPosition_Inverse = "http://www.simantics.org/G3D-0.1/hasPosition/Inverse"; public static final String hasTransformation = "http://www.simantics.org/G3D-0.1/hasTransformation"; public static final String hasTransformation_Inverse = "http://www.simantics.org/G3D-0.1/hasTransformation/Inverse"; public static final String hasWorldOrientation = "http://www.simantics.org/G3D-0.1/hasWorldOrientation"; public static final String hasWorldOrientation_Inverse = "http://www.simantics.org/G3D-0.1/hasWorldOrientation/Inverse"; public static final String hasWorldPosition = "http://www.simantics.org/G3D-0.1/hasWorldPosition"; public static final String hasWorldPosition_Inverse = "http://www.simantics.org/G3D-0.1/hasWorldPosition/Inverse"; public static final String nodes = "http://www.simantics.org/G3D-0.1/nodes"; public static final String parent = "http://www.simantics.org/G3D-0.1/parent"; public static final String parentNode = "http://www.simantics.org/G3D-0.1/parentNode"; public static final String publishes = "http://www.simantics.org/G3D-0.1/publishes"; public static final String publishes_Inverse = "http://www.simantics.org/G3D-0.1/publishes/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 G3D(ReadGraph graph) { BaseNode = getResourceOrNull(graph, URIs.BaseNode); Node = getResourceOrNull(graph, URIs.Node); Orientation = getResourceOrNull(graph, URIs.Orientation); Position = getResourceOrNull(graph, URIs.Position); RootNode = getResourceOrNull(graph, URIs.RootNode); Tuple3D = getResourceOrNull(graph, URIs.Tuple3D); Tuple4D = getResourceOrNull(graph, URIs.Tuple4D); children = getResourceOrNull(graph, URIs.children); geometryDefinition = getResourceOrNull(graph, URIs.geometryDefinition); geometryDefinitionOf = getResourceOrNull(graph, URIs.geometryDefinitionOf); hasNodeProperty = getResourceOrNull(graph, URIs.hasNodeProperty); hasNodeProperty_Inverse = getResourceOrNull(graph, URIs.hasNodeProperty_Inverse); hasNonTransformation = getResourceOrNull(graph, URIs.hasNonTransformation); hasNonTransformation_Inverse = getResourceOrNull(graph, URIs.hasNonTransformation_Inverse); hasOrientation = getResourceOrNull(graph, URIs.hasOrientation); hasOrientation_Inverse = getResourceOrNull(graph, URIs.hasOrientation_Inverse); hasPosition = getResourceOrNull(graph, URIs.hasPosition); hasPosition_Inverse = getResourceOrNull(graph, URIs.hasPosition_Inverse); hasTransformation = getResourceOrNull(graph, URIs.hasTransformation); hasTransformation_Inverse = getResourceOrNull(graph, URIs.hasTransformation_Inverse); hasWorldOrientation = getResourceOrNull(graph, URIs.hasWorldOrientation); hasWorldOrientation_Inverse = getResourceOrNull(graph, URIs.hasWorldOrientation_Inverse); hasWorldPosition = getResourceOrNull(graph, URIs.hasWorldPosition); hasWorldPosition_Inverse = getResourceOrNull(graph, URIs.hasWorldPosition_Inverse); nodes = getResourceOrNull(graph, URIs.nodes); parent = getResourceOrNull(graph, URIs.parent); parentNode = getResourceOrNull(graph, URIs.parentNode); publishes = getResourceOrNull(graph, URIs.publishes); publishes_Inverse = getResourceOrNull(graph, URIs.publishes_Inverse); } public static G3D getInstance(ReadGraph graph) { Session session = graph.getSession(); G3D ret = session.peekService(G3D.class); if(ret == null) { QueryControl qc = graph.getService(QueryControl.class); ret = new G3D(qc.getIndependentGraph(graph)); session.registerService(G3D.class, ret); } return ret; } public static G3D getInstance(RequestProcessor session) throws DatabaseException { G3D ret = session.peekService(G3D.class); if(ret == null) { ret = session.syncRequest(new Read() { public G3D perform(ReadGraph graph) throws DatabaseException { QueryControl qc = graph.getService(QueryControl.class); return new G3D(qc.getIndependentGraph(graph)); } }); session.registerService(G3D.class, ret); } return ret; } }