/******************************************************************************* * 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.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() { 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; } }