]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.district.route.ontology/src/org/simantics/district/route/ontology/RouteResource.java
Merge remote-tracking branch 'origin/master' into release/1.35.2
[simantics/district.git] / org.simantics.district.route.ontology / src / org / simantics / district / route / ontology / RouteResource.java
1 package org.simantics.district.route.ontology;
2
3 import org.simantics.db.RequestProcessor;
4 import org.simantics.db.Resource;
5 import org.simantics.db.ReadGraph;
6 import org.simantics.db.request.Read;
7 import org.simantics.db.Session;
8 import org.simantics.db.exception.DatabaseException;
9 import org.simantics.db.service.QueryControl;
10
11 public class RouteResource {
12     
13     public final Resource Actions;
14     public final Resource Actions_SelectRoute;
15     public final Resource Actions_ValidateRoute;
16     public final Resource Route;
17     public final Resource RouteActionContext;
18     public final Resource RouteFolder;
19         
20     public static class URIs {
21         public static final String Actions = "http://www.simantics.org/DistrictNetworkRoutes-1.0/Actions";
22         public static final String Actions_SelectRoute = "http://www.simantics.org/DistrictNetworkRoutes-1.0/Actions/SelectRoute";
23         public static final String Actions_ValidateRoute = "http://www.simantics.org/DistrictNetworkRoutes-1.0/Actions/ValidateRoute";
24         public static final String Route = "http://www.simantics.org/DistrictNetworkRoutes-1.0/Route";
25         public static final String RouteActionContext = "http://www.simantics.org/DistrictNetworkRoutes-1.0/RouteActionContext";
26         public static final String RouteFolder = "http://www.simantics.org/DistrictNetworkRoutes-1.0/RouteFolder";
27     }
28     
29     public static Resource getResourceOrNull(ReadGraph graph, String uri) {
30         try {
31             return graph.getResource(uri);
32         } catch(DatabaseException e) {
33             System.err.println(e.getMessage());
34             return null;
35         }
36     }
37     
38     public RouteResource(ReadGraph graph) {
39         Actions = getResourceOrNull(graph, URIs.Actions);
40         Actions_SelectRoute = getResourceOrNull(graph, URIs.Actions_SelectRoute);
41         Actions_ValidateRoute = getResourceOrNull(graph, URIs.Actions_ValidateRoute);
42         Route = getResourceOrNull(graph, URIs.Route);
43         RouteActionContext = getResourceOrNull(graph, URIs.RouteActionContext);
44         RouteFolder = getResourceOrNull(graph, URIs.RouteFolder);
45     }
46     
47     public static RouteResource getInstance(ReadGraph graph) {
48         Session session = graph.getSession();
49         RouteResource ret = session.peekService(RouteResource.class);
50         if(ret == null) {
51             QueryControl qc = graph.getService(QueryControl.class);
52             ret = new RouteResource(qc.getIndependentGraph(graph));
53             session.registerService(RouteResource.class, ret);
54         }
55         return ret;
56     }
57     
58     public static RouteResource getInstance(RequestProcessor session) throws DatabaseException {
59         RouteResource ret = session.peekService(RouteResource.class);
60         if(ret == null) {
61             ret = session.syncRequest(new Read<RouteResource>() {
62                 public RouteResource perform(ReadGraph graph) throws DatabaseException {
63                     QueryControl qc = graph.getService(QueryControl.class);
64                     return new RouteResource(qc.getIndependentGraph(graph));
65                 }
66             });
67             session.registerService(RouteResource.class, ret);
68         }
69         return ret;
70     }
71     
72 }
73