X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.region.ontology%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fregion%2Fontology%2FDiagramRegionsResource.java;fp=org.simantics.district.region.ontology%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fregion%2Fontology%2FDiagramRegionsResource.java;h=2777f8a7d45a35d4eee50df7475b6b88aa010488;hb=48d9ed8412b4a8dc45dcd9db351923046de7fead;hp=0000000000000000000000000000000000000000;hpb=04d29917ceb4e34d2d9fc32ac4c7c8bdd2f4a732;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.region.ontology/src/org/simantics/district/region/ontology/DiagramRegionsResource.java b/org.simantics.district.region.ontology/src/org/simantics/district/region/ontology/DiagramRegionsResource.java new file mode 100644 index 00000000..2777f8a7 --- /dev/null +++ b/org.simantics.district.region.ontology/src/org/simantics/district/region/ontology/DiagramRegionsResource.java @@ -0,0 +1,70 @@ +package org.simantics.district.region.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 DiagramRegionsResource { + + public final Resource Region; + public final Resource Region_area; + public final Resource Region_area_Inverse; + public final Resource hasRegion; + public final Resource regionOf; + + public static class URIs { + public static final String Region = "http://www.simantics.org/DistrictDiagramRegions-1.0/Region"; + public static final String Region_area = "http://www.simantics.org/DistrictDiagramRegions-1.0/Region/area"; + public static final String Region_area_Inverse = "http://www.simantics.org/DistrictDiagramRegions-1.0/Region/area/Inverse"; + public static final String hasRegion = "http://www.simantics.org/DistrictDiagramRegions-1.0/hasRegion"; + public static final String regionOf = "http://www.simantics.org/DistrictDiagramRegions-1.0/regionOf"; + } + + public static Resource getResourceOrNull(ReadGraph graph, String uri) { + try { + return graph.getResource(uri); + } catch(DatabaseException e) { + System.err.println(e.getMessage()); + return null; + } + } + + public DiagramRegionsResource(ReadGraph graph) { + Region = getResourceOrNull(graph, URIs.Region); + Region_area = getResourceOrNull(graph, URIs.Region_area); + Region_area_Inverse = getResourceOrNull(graph, URIs.Region_area_Inverse); + hasRegion = getResourceOrNull(graph, URIs.hasRegion); + regionOf = getResourceOrNull(graph, URIs.regionOf); + } + + public static DiagramRegionsResource getInstance(ReadGraph graph) { + Session session = graph.getSession(); + DiagramRegionsResource ret = session.peekService(DiagramRegionsResource.class); + if(ret == null) { + QueryControl qc = graph.getService(QueryControl.class); + ret = new DiagramRegionsResource(qc.getIndependentGraph(graph)); + session.registerService(DiagramRegionsResource.class, ret); + } + return ret; + } + + public static DiagramRegionsResource getInstance(RequestProcessor session) throws DatabaseException { + DiagramRegionsResource ret = session.peekService(DiagramRegionsResource.class); + if(ret == null) { + ret = session.syncRequest(new Read() { + public DiagramRegionsResource perform(ReadGraph graph) throws DatabaseException { + QueryControl qc = graph.getService(QueryControl.class); + return new DiagramRegionsResource(qc.getIndependentGraph(graph)); + } + }); + session.registerService(DiagramRegionsResource.class, ret); + } + return ret; + } + +} +