1 package ${packageName};
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 ${className} {
13 <#list resources as resource>
14 <#if resource.deprecated>@Deprecated </#if>public final Resource ${resource.javaName};
17 public static class URIs {
18 <#list resources as resource>
19 <#if resource.deprecated>@Deprecated </#if>public static final String ${resource.javaName} = "${resource.uri}";
23 public static Resource getResourceOrNull(ReadGraph graph, String uri) {
25 return graph.getResource(uri);
26 } catch(DatabaseException e) {
27 System.err.println(e.getMessage());
32 public ${className}(ReadGraph graph) {
33 <#list resources as resource>
34 ${resource.javaName} = getResourceOrNull(graph, URIs.${resource.javaName});
38 public static ${className} getInstance(ReadGraph graph) {
39 Session session = graph.getSession();
40 ${className} ret = session.peekService(${className}.class);
42 QueryControl qc = graph.getService(QueryControl.class);
43 ret = new ${className}(qc.getIndependentGraph(graph));
44 session.registerService(${className}.class, ret);
49 public static ${className} getInstance(RequestProcessor session) throws DatabaseException {
50 ${className} ret = session.peekService(${className}.class);
52 ret = session.syncRequest(new Read<${className}>() {
53 public ${className} perform(ReadGraph graph) throws DatabaseException {
54 QueryControl qc = graph.getService(QueryControl.class);
55 return new ${className}(qc.getIndependentGraph(graph));
58 session.registerService(${className}.class, ret);