X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.color.ontology%2Fsrc%2Forg%2Fsimantics%2Fcolor%2FColorResource.java;fp=bundles%2Forg.simantics.color.ontology%2Fsrc%2Forg%2Fsimantics%2Fcolor%2FColorResource.java;h=2247c76dd99271de926a92a42bf05c580a39c807;hp=0000000000000000000000000000000000000000;hb=969bd23cab98a79ca9101af33334000879fb60c5;hpb=866dba5cd5a3929bbeae85991796acb212338a08 diff --git a/bundles/org.simantics.color.ontology/src/org/simantics/color/ColorResource.java b/bundles/org.simantics.color.ontology/src/org/simantics/color/ColorResource.java new file mode 100644 index 000000000..2247c76dd --- /dev/null +++ b/bundles/org.simantics.color.ontology/src/org/simantics/color/ColorResource.java @@ -0,0 +1,58 @@ +package org.simantics.color; + +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 ColorResource { + + public final Resource RGB; + + public static class URIs { + public static final String RGB = "http://www.simantics.org/Color-1.1/RGB"; + } + + public static Resource getResourceOrNull(ReadGraph graph, String uri) { + try { + return graph.getResource(uri); + } catch(DatabaseException e) { + System.err.println(e.getMessage()); + return null; + } + } + + public ColorResource(ReadGraph graph) { + RGB = getResourceOrNull(graph, URIs.RGB); + } + + public static ColorResource getInstance(ReadGraph graph) { + Session session = graph.getSession(); + ColorResource ret = session.peekService(ColorResource.class); + if(ret == null) { + QueryControl qc = graph.getService(QueryControl.class); + ret = new ColorResource(qc.getIndependentGraph(graph)); + session.registerService(ColorResource.class, ret); + } + return ret; + } + + public static ColorResource getInstance(RequestProcessor session) throws DatabaseException { + ColorResource ret = session.peekService(ColorResource.class); + if(ret == null) { + ret = session.syncRequest(new Read() { + public ColorResource perform(ReadGraph graph) throws DatabaseException { + QueryControl qc = graph.getService(QueryControl.class); + return new ColorResource(qc.getIndependentGraph(graph)); + } + }); + session.registerService(ColorResource.class, ret); + } + return ret; + } + +} +