]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.color.ontology/src/org/simantics/color/ColorResource.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.color.ontology / src / org / simantics / color / ColorResource.java
1 package org.simantics.color;\r
2 \r
3 import org.simantics.db.RequestProcessor;\r
4 import org.simantics.db.Resource;\r
5 import org.simantics.db.ReadGraph;\r
6 import org.simantics.db.request.Read;\r
7 import org.simantics.db.Session;\r
8 import org.simantics.db.exception.DatabaseException;\r
9 import org.simantics.db.service.QueryControl;\r
10 \r
11 public class ColorResource {\r
12     \r
13     public final Resource RGB;\r
14         \r
15     public static class URIs {\r
16         public static final String RGB = "http://www.simantics.org/Color-1.1/RGB";\r
17     }\r
18     \r
19     public static Resource getResourceOrNull(ReadGraph graph, String uri) {\r
20         try {\r
21             return graph.getResource(uri);\r
22         } catch(DatabaseException e) {\r
23             System.err.println(e.getMessage());\r
24             return null;\r
25         }\r
26     }\r
27     \r
28     public ColorResource(ReadGraph graph) {\r
29         RGB = getResourceOrNull(graph, URIs.RGB);\r
30     }\r
31     \r
32     public static ColorResource getInstance(ReadGraph graph) {\r
33         Session session = graph.getSession();\r
34         ColorResource ret = session.peekService(ColorResource.class);\r
35         if(ret == null) {\r
36             QueryControl qc = graph.getService(QueryControl.class);\r
37             ret = new ColorResource(qc.getIndependentGraph(graph));\r
38             session.registerService(ColorResource.class, ret);\r
39         }\r
40         return ret;\r
41     }\r
42     \r
43     public static ColorResource getInstance(RequestProcessor session) throws DatabaseException {\r
44         ColorResource ret = session.peekService(ColorResource.class);\r
45         if(ret == null) {\r
46             ret = session.syncRequest(new Read<ColorResource>() {\r
47                 public ColorResource perform(ReadGraph graph) throws DatabaseException {\r
48                     QueryControl qc = graph.getService(QueryControl.class);\r
49                     return new ColorResource(qc.getIndependentGraph(graph));\r
50                 }\r
51             });\r
52             session.registerService(ColorResource.class, ret);\r
53         }\r
54         return ret;\r
55     }\r
56     \r
57 }\r
58 \r