1 package org.simantics.layer0;
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 DublinCore {
13 public final Resource Bar;
14 public final Resource Contributor;
15 public final Resource Coverage;
16 public final Resource Creator;
17 public final Resource Date;
18 public final Resource Date_Inverse;
19 public final Resource Description;
20 public final Resource Foo;
21 public final Resource Format;
22 public final Resource Identifier;
23 public final Resource Identifier_Inverse;
24 public final Resource Language;
25 public final Resource Publisher;
26 public final Resource Relation;
27 public final Resource Rights;
28 public final Resource Source;
29 public final Resource Subject;
30 public final Resource Title;
31 public final Resource Type;
33 public static class URIs {
34 public static final String Bar = "http://www.simantics.org/DublinCore-1.1/Bar";
35 public static final String Contributor = "http://www.simantics.org/DublinCore-1.1/Contributor";
36 public static final String Coverage = "http://www.simantics.org/DublinCore-1.1/Coverage";
37 public static final String Creator = "http://www.simantics.org/DublinCore-1.1/Creator";
38 public static final String Date = "http://www.simantics.org/DublinCore-1.1/Date";
39 public static final String Date_Inverse = "http://www.simantics.org/DublinCore-1.1/Date/Inverse";
40 public static final String Description = "http://www.simantics.org/DublinCore-1.1/Description";
41 public static final String Foo = "http://www.simantics.org/DublinCore-1.1/Foo";
42 public static final String Format = "http://www.simantics.org/DublinCore-1.1/Format";
43 public static final String Identifier = "http://www.simantics.org/DublinCore-1.1/Identifier";
44 public static final String Identifier_Inverse = "http://www.simantics.org/DublinCore-1.1/Identifier/Inverse";
45 public static final String Language = "http://www.simantics.org/DublinCore-1.1/Language";
46 public static final String Publisher = "http://www.simantics.org/DublinCore-1.1/Publisher";
47 public static final String Relation = "http://www.simantics.org/DublinCore-1.1/Relation";
48 public static final String Rights = "http://www.simantics.org/DublinCore-1.1/Rights";
49 public static final String Source = "http://www.simantics.org/DublinCore-1.1/Source";
50 public static final String Subject = "http://www.simantics.org/DublinCore-1.1/Subject";
51 public static final String Title = "http://www.simantics.org/DublinCore-1.1/Title";
52 public static final String Type = "http://www.simantics.org/DublinCore-1.1/Type";
55 public static Resource getResourceOrNull(ReadGraph graph, String uri) {
57 return graph.getResource(uri);
58 } catch(DatabaseException e) {
59 System.err.println(e.getMessage());
64 public DublinCore(ReadGraph graph) {
65 Bar = getResourceOrNull(graph, URIs.Bar);
66 Contributor = getResourceOrNull(graph, URIs.Contributor);
67 Coverage = getResourceOrNull(graph, URIs.Coverage);
68 Creator = getResourceOrNull(graph, URIs.Creator);
69 Date = getResourceOrNull(graph, URIs.Date);
70 Date_Inverse = getResourceOrNull(graph, URIs.Date_Inverse);
71 Description = getResourceOrNull(graph, URIs.Description);
72 Foo = getResourceOrNull(graph, URIs.Foo);
73 Format = getResourceOrNull(graph, URIs.Format);
74 Identifier = getResourceOrNull(graph, URIs.Identifier);
75 Identifier_Inverse = getResourceOrNull(graph, URIs.Identifier_Inverse);
76 Language = getResourceOrNull(graph, URIs.Language);
77 Publisher = getResourceOrNull(graph, URIs.Publisher);
78 Relation = getResourceOrNull(graph, URIs.Relation);
79 Rights = getResourceOrNull(graph, URIs.Rights);
80 Source = getResourceOrNull(graph, URIs.Source);
81 Subject = getResourceOrNull(graph, URIs.Subject);
82 Title = getResourceOrNull(graph, URIs.Title);
83 Type = getResourceOrNull(graph, URIs.Type);
86 public static DublinCore getInstance(ReadGraph graph) {
87 Session session = graph.getSession();
88 DublinCore ret = session.peekService(DublinCore.class);
90 QueryControl qc = graph.getService(QueryControl.class);
91 ret = new DublinCore(qc.getIndependentGraph(graph));
92 session.registerService(DublinCore.class, ret);
97 public static DublinCore getInstance(RequestProcessor session) throws DatabaseException {
98 DublinCore ret = session.peekService(DublinCore.class);
100 ret = session.syncRequest(new Read<DublinCore>() {
101 public DublinCore perform(ReadGraph graph) throws DatabaseException {
102 QueryControl qc = graph.getService(QueryControl.class);
103 return new DublinCore(qc.getIndependentGraph(graph));
106 session.registerService(DublinCore.class, ret);