1 package org.simantics.color;
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;
11 public class ColorResource {
13 public final Resource RGB;
15 public static class URIs {
16 public static final String RGB = "http://www.simantics.org/Color-1.1/RGB";
19 public static Resource getResourceOrNull(ReadGraph graph, String uri) {
21 return graph.getResource(uri);
22 } catch(DatabaseException e) {
23 System.err.println(e.getMessage());
28 public ColorResource(ReadGraph graph) {
29 RGB = getResourceOrNull(graph, URIs.RGB);
32 public static ColorResource getInstance(ReadGraph graph) {
33 Session session = graph.getSession();
34 ColorResource ret = session.peekService(ColorResource.class);
36 QueryControl qc = graph.getService(QueryControl.class);
37 ret = new ColorResource(qc.getIndependentGraph(graph));
38 session.registerService(ColorResource.class, ret);
43 public static ColorResource getInstance(RequestProcessor session) throws DatabaseException {
44 ColorResource ret = session.peekService(ColorResource.class);
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));
52 session.registerService(ColorResource.class, ret);