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