--- /dev/null
+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<DiagramRegionsResource>() {
+ 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;
+ }
+
+}
+