]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.dublincore.ontology/src/org/simantics/layer0/DublinCore.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.dublincore.ontology / src / org / simantics / layer0 / DublinCore.java
1 package org.simantics.layer0;\r
2 \r
3 import org.simantics.db.RequestProcessor;\r
4 import org.simantics.db.Resource;\r
5 import org.simantics.db.ReadGraph;\r
6 import org.simantics.db.request.Read;\r
7 import org.simantics.db.Session;\r
8 import org.simantics.db.exception.DatabaseException;\r
9 import org.simantics.db.service.QueryControl;\r
10 \r
11 public class DublinCore {\r
12     \r
13     public final Resource Bar;\r
14     public final Resource Contributor;\r
15     public final Resource Coverage;\r
16     public final Resource Creator;\r
17     public final Resource Date;\r
18     public final Resource Date_Inverse;\r
19     public final Resource Description;\r
20     public final Resource Foo;\r
21     public final Resource Format;\r
22     public final Resource Identifier;\r
23     public final Resource Identifier_Inverse;\r
24     public final Resource Language;\r
25     public final Resource Publisher;\r
26     public final Resource Relation;\r
27     public final Resource Rights;\r
28     public final Resource Source;\r
29     public final Resource Subject;\r
30     public final Resource Title;\r
31     public final Resource Type;\r
32         \r
33     public static class URIs {\r
34         public static final String Bar = "http://www.simantics.org/DublinCore-1.1/Bar";\r
35         public static final String Contributor = "http://www.simantics.org/DublinCore-1.1/Contributor";\r
36         public static final String Coverage = "http://www.simantics.org/DublinCore-1.1/Coverage";\r
37         public static final String Creator = "http://www.simantics.org/DublinCore-1.1/Creator";\r
38         public static final String Date = "http://www.simantics.org/DublinCore-1.1/Date";\r
39         public static final String Date_Inverse = "http://www.simantics.org/DublinCore-1.1/Date/Inverse";\r
40         public static final String Description = "http://www.simantics.org/DublinCore-1.1/Description";\r
41         public static final String Foo = "http://www.simantics.org/DublinCore-1.1/Foo";\r
42         public static final String Format = "http://www.simantics.org/DublinCore-1.1/Format";\r
43         public static final String Identifier = "http://www.simantics.org/DublinCore-1.1/Identifier";\r
44         public static final String Identifier_Inverse = "http://www.simantics.org/DublinCore-1.1/Identifier/Inverse";\r
45         public static final String Language = "http://www.simantics.org/DublinCore-1.1/Language";\r
46         public static final String Publisher = "http://www.simantics.org/DublinCore-1.1/Publisher";\r
47         public static final String Relation = "http://www.simantics.org/DublinCore-1.1/Relation";\r
48         public static final String Rights = "http://www.simantics.org/DublinCore-1.1/Rights";\r
49         public static final String Source = "http://www.simantics.org/DublinCore-1.1/Source";\r
50         public static final String Subject = "http://www.simantics.org/DublinCore-1.1/Subject";\r
51         public static final String Title = "http://www.simantics.org/DublinCore-1.1/Title";\r
52         public static final String Type = "http://www.simantics.org/DublinCore-1.1/Type";\r
53     }\r
54     \r
55     public static Resource getResourceOrNull(ReadGraph graph, String uri) {\r
56         try {\r
57             return graph.getResource(uri);\r
58         } catch(DatabaseException e) {\r
59             System.err.println(e.getMessage());\r
60             return null;\r
61         }\r
62     }\r
63     \r
64     public DublinCore(ReadGraph graph) {\r
65         Bar = getResourceOrNull(graph, URIs.Bar);\r
66         Contributor = getResourceOrNull(graph, URIs.Contributor);\r
67         Coverage = getResourceOrNull(graph, URIs.Coverage);\r
68         Creator = getResourceOrNull(graph, URIs.Creator);\r
69         Date = getResourceOrNull(graph, URIs.Date);\r
70         Date_Inverse = getResourceOrNull(graph, URIs.Date_Inverse);\r
71         Description = getResourceOrNull(graph, URIs.Description);\r
72         Foo = getResourceOrNull(graph, URIs.Foo);\r
73         Format = getResourceOrNull(graph, URIs.Format);\r
74         Identifier = getResourceOrNull(graph, URIs.Identifier);\r
75         Identifier_Inverse = getResourceOrNull(graph, URIs.Identifier_Inverse);\r
76         Language = getResourceOrNull(graph, URIs.Language);\r
77         Publisher = getResourceOrNull(graph, URIs.Publisher);\r
78         Relation = getResourceOrNull(graph, URIs.Relation);\r
79         Rights = getResourceOrNull(graph, URIs.Rights);\r
80         Source = getResourceOrNull(graph, URIs.Source);\r
81         Subject = getResourceOrNull(graph, URIs.Subject);\r
82         Title = getResourceOrNull(graph, URIs.Title);\r
83         Type = getResourceOrNull(graph, URIs.Type);\r
84     }\r
85     \r
86     public static DublinCore getInstance(ReadGraph graph) {\r
87         Session session = graph.getSession();\r
88         DublinCore ret = session.peekService(DublinCore.class);\r
89         if(ret == null) {\r
90             QueryControl qc = graph.getService(QueryControl.class);\r
91             ret = new DublinCore(qc.getIndependentGraph(graph));\r
92             session.registerService(DublinCore.class, ret);\r
93         }\r
94         return ret;\r
95     }\r
96     \r
97     public static DublinCore getInstance(RequestProcessor session) throws DatabaseException {\r
98         DublinCore ret = session.peekService(DublinCore.class);\r
99         if(ret == null) {\r
100             ret = session.syncRequest(new Read<DublinCore>() {\r
101                 public DublinCore perform(ReadGraph graph) throws DatabaseException {\r
102                     QueryControl qc = graph.getService(QueryControl.class);\r
103                     return new DublinCore(qc.getIndependentGraph(graph));\r
104                 }\r
105             });\r
106             session.registerService(DublinCore.class, ret);\r
107         }\r
108         return ret;\r
109     }\r
110     \r
111 }\r
112 \r