package org.simantics.r; 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 RResource { public final Resource Model; public final Resource RProperty; public final Resource Script; public final Resource Script_text; public final Resource Script_text_Inverse; public final Resource Session; public final Resource SessionConfiguration; public final Resource SessionConfiguration_hasScript; public final Resource SessionConfiguration_host; public final Resource SessionConfiguration_host_Inverse; public final Resource SessionConfiguration_password; public final Resource SessionConfiguration_password_Inverse; public final Resource SessionConfiguration_port; public final Resource SessionConfiguration_port_Inverse; public final Resource SessionConfiguration_username; public final Resource SessionConfiguration_username_Inverse; public final Resource Session_hasValue; public final Resource Session_hasValue_Inverse; public final Resource TabContribution; public static class URIs { public static final String Model = "http://www.simantics.org/R-1.0/Model"; public static final String RProperty = "http://www.simantics.org/R-1.0/RProperty"; public static final String Script = "http://www.simantics.org/R-1.0/Script"; public static final String Script_text = "http://www.simantics.org/R-1.0/Script/text"; public static final String Script_text_Inverse = "http://www.simantics.org/R-1.0/Script/text/Inverse"; public static final String Session = "http://www.simantics.org/R-1.0/Session"; public static final String SessionConfiguration = "http://www.simantics.org/R-1.0/SessionConfiguration"; public static final String SessionConfiguration_hasScript = "http://www.simantics.org/R-1.0/SessionConfiguration/hasScript"; public static final String SessionConfiguration_host = "http://www.simantics.org/R-1.0/SessionConfiguration/host"; public static final String SessionConfiguration_host_Inverse = "http://www.simantics.org/R-1.0/SessionConfiguration/host/Inverse"; public static final String SessionConfiguration_password = "http://www.simantics.org/R-1.0/SessionConfiguration/password"; public static final String SessionConfiguration_password_Inverse = "http://www.simantics.org/R-1.0/SessionConfiguration/password/Inverse"; public static final String SessionConfiguration_port = "http://www.simantics.org/R-1.0/SessionConfiguration/port"; public static final String SessionConfiguration_port_Inverse = "http://www.simantics.org/R-1.0/SessionConfiguration/port/Inverse"; public static final String SessionConfiguration_username = "http://www.simantics.org/R-1.0/SessionConfiguration/username"; public static final String SessionConfiguration_username_Inverse = "http://www.simantics.org/R-1.0/SessionConfiguration/username/Inverse"; public static final String Session_hasValue = "http://www.simantics.org/R-1.0/Session/hasValue"; public static final String Session_hasValue_Inverse = "http://www.simantics.org/R-1.0/Session/hasValue/Inverse"; public static final String TabContribution = "http://www.simantics.org/R-1.0/TabContribution"; } public static Resource getResourceOrNull(ReadGraph graph, String uri) { try { return graph.getResource(uri); } catch(DatabaseException e) { System.err.println(e.getMessage()); return null; } } public RResource(ReadGraph graph) { Model = getResourceOrNull(graph, URIs.Model); RProperty = getResourceOrNull(graph, URIs.RProperty); Script = getResourceOrNull(graph, URIs.Script); Script_text = getResourceOrNull(graph, URIs.Script_text); Script_text_Inverse = getResourceOrNull(graph, URIs.Script_text_Inverse); Session = getResourceOrNull(graph, URIs.Session); SessionConfiguration = getResourceOrNull(graph, URIs.SessionConfiguration); SessionConfiguration_hasScript = getResourceOrNull(graph, URIs.SessionConfiguration_hasScript); SessionConfiguration_host = getResourceOrNull(graph, URIs.SessionConfiguration_host); SessionConfiguration_host_Inverse = getResourceOrNull(graph, URIs.SessionConfiguration_host_Inverse); SessionConfiguration_password = getResourceOrNull(graph, URIs.SessionConfiguration_password); SessionConfiguration_password_Inverse = getResourceOrNull(graph, URIs.SessionConfiguration_password_Inverse); SessionConfiguration_port = getResourceOrNull(graph, URIs.SessionConfiguration_port); SessionConfiguration_port_Inverse = getResourceOrNull(graph, URIs.SessionConfiguration_port_Inverse); SessionConfiguration_username = getResourceOrNull(graph, URIs.SessionConfiguration_username); SessionConfiguration_username_Inverse = getResourceOrNull(graph, URIs.SessionConfiguration_username_Inverse); Session_hasValue = getResourceOrNull(graph, URIs.Session_hasValue); Session_hasValue_Inverse = getResourceOrNull(graph, URIs.Session_hasValue_Inverse); TabContribution = getResourceOrNull(graph, URIs.TabContribution); } public static RResource getInstance(ReadGraph graph) { Session session = graph.getSession(); RResource ret = session.peekService(RResource.class); if(ret == null) { QueryControl qc = graph.getService(QueryControl.class); ret = new RResource(qc.getIndependentGraph(graph)); session.registerService(RResource.class, ret); } return ret; } public static RResource getInstance(RequestProcessor session) throws DatabaseException { RResource ret = session.peekService(RResource.class); if(ret == null) { ret = session.syncRequest(new Read() { public RResource perform(ReadGraph graph) throws DatabaseException { QueryControl qc = graph.getService(QueryControl.class); return new RResource(qc.getIndependentGraph(graph)); } }); session.registerService(RResource.class, ret); } return ret; } }