]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - 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
diff --git a/bundles/org.simantics.dublincore.ontology/src/org/simantics/layer0/DublinCore.java b/bundles/org.simantics.dublincore.ontology/src/org/simantics/layer0/DublinCore.java
new file mode 100644 (file)
index 0000000..603bb3f
--- /dev/null
@@ -0,0 +1,112 @@
+package org.simantics.layer0;\r
+\r
+import org.simantics.db.RequestProcessor;\r
+import org.simantics.db.Resource;\r
+import org.simantics.db.ReadGraph;\r
+import org.simantics.db.request.Read;\r
+import org.simantics.db.Session;\r
+import org.simantics.db.exception.DatabaseException;\r
+import org.simantics.db.service.QueryControl;\r
+\r
+public class DublinCore {\r
+    \r
+    public final Resource Bar;\r
+    public final Resource Contributor;\r
+    public final Resource Coverage;\r
+    public final Resource Creator;\r
+    public final Resource Date;\r
+    public final Resource Date_Inverse;\r
+    public final Resource Description;\r
+    public final Resource Foo;\r
+    public final Resource Format;\r
+    public final Resource Identifier;\r
+    public final Resource Identifier_Inverse;\r
+    public final Resource Language;\r
+    public final Resource Publisher;\r
+    public final Resource Relation;\r
+    public final Resource Rights;\r
+    public final Resource Source;\r
+    public final Resource Subject;\r
+    public final Resource Title;\r
+    public final Resource Type;\r
+        \r
+    public static class URIs {\r
+        public static final String Bar = "http://www.simantics.org/DublinCore-1.1/Bar";\r
+        public static final String Contributor = "http://www.simantics.org/DublinCore-1.1/Contributor";\r
+        public static final String Coverage = "http://www.simantics.org/DublinCore-1.1/Coverage";\r
+        public static final String Creator = "http://www.simantics.org/DublinCore-1.1/Creator";\r
+        public static final String Date = "http://www.simantics.org/DublinCore-1.1/Date";\r
+        public static final String Date_Inverse = "http://www.simantics.org/DublinCore-1.1/Date/Inverse";\r
+        public static final String Description = "http://www.simantics.org/DublinCore-1.1/Description";\r
+        public static final String Foo = "http://www.simantics.org/DublinCore-1.1/Foo";\r
+        public static final String Format = "http://www.simantics.org/DublinCore-1.1/Format";\r
+        public static final String Identifier = "http://www.simantics.org/DublinCore-1.1/Identifier";\r
+        public static final String Identifier_Inverse = "http://www.simantics.org/DublinCore-1.1/Identifier/Inverse";\r
+        public static final String Language = "http://www.simantics.org/DublinCore-1.1/Language";\r
+        public static final String Publisher = "http://www.simantics.org/DublinCore-1.1/Publisher";\r
+        public static final String Relation = "http://www.simantics.org/DublinCore-1.1/Relation";\r
+        public static final String Rights = "http://www.simantics.org/DublinCore-1.1/Rights";\r
+        public static final String Source = "http://www.simantics.org/DublinCore-1.1/Source";\r
+        public static final String Subject = "http://www.simantics.org/DublinCore-1.1/Subject";\r
+        public static final String Title = "http://www.simantics.org/DublinCore-1.1/Title";\r
+        public static final String Type = "http://www.simantics.org/DublinCore-1.1/Type";\r
+    }\r
+    \r
+    public static Resource getResourceOrNull(ReadGraph graph, String uri) {\r
+        try {\r
+            return graph.getResource(uri);\r
+        } catch(DatabaseException e) {\r
+            System.err.println(e.getMessage());\r
+            return null;\r
+        }\r
+    }\r
+    \r
+    public DublinCore(ReadGraph graph) {\r
+        Bar = getResourceOrNull(graph, URIs.Bar);\r
+        Contributor = getResourceOrNull(graph, URIs.Contributor);\r
+        Coverage = getResourceOrNull(graph, URIs.Coverage);\r
+        Creator = getResourceOrNull(graph, URIs.Creator);\r
+        Date = getResourceOrNull(graph, URIs.Date);\r
+        Date_Inverse = getResourceOrNull(graph, URIs.Date_Inverse);\r
+        Description = getResourceOrNull(graph, URIs.Description);\r
+        Foo = getResourceOrNull(graph, URIs.Foo);\r
+        Format = getResourceOrNull(graph, URIs.Format);\r
+        Identifier = getResourceOrNull(graph, URIs.Identifier);\r
+        Identifier_Inverse = getResourceOrNull(graph, URIs.Identifier_Inverse);\r
+        Language = getResourceOrNull(graph, URIs.Language);\r
+        Publisher = getResourceOrNull(graph, URIs.Publisher);\r
+        Relation = getResourceOrNull(graph, URIs.Relation);\r
+        Rights = getResourceOrNull(graph, URIs.Rights);\r
+        Source = getResourceOrNull(graph, URIs.Source);\r
+        Subject = getResourceOrNull(graph, URIs.Subject);\r
+        Title = getResourceOrNull(graph, URIs.Title);\r
+        Type = getResourceOrNull(graph, URIs.Type);\r
+    }\r
+    \r
+    public static DublinCore getInstance(ReadGraph graph) {\r
+        Session session = graph.getSession();\r
+        DublinCore ret = session.peekService(DublinCore.class);\r
+        if(ret == null) {\r
+            QueryControl qc = graph.getService(QueryControl.class);\r
+            ret = new DublinCore(qc.getIndependentGraph(graph));\r
+            session.registerService(DublinCore.class, ret);\r
+        }\r
+        return ret;\r
+    }\r
+    \r
+    public static DublinCore getInstance(RequestProcessor session) throws DatabaseException {\r
+        DublinCore ret = session.peekService(DublinCore.class);\r
+        if(ret == null) {\r
+            ret = session.syncRequest(new Read<DublinCore>() {\r
+                public DublinCore perform(ReadGraph graph) throws DatabaseException {\r
+                    QueryControl qc = graph.getService(QueryControl.class);\r
+                    return new DublinCore(qc.getIndependentGraph(graph));\r
+                }\r
+            });\r
+            session.registerService(DublinCore.class, ret);\r
+        }\r
+        return ret;\r
+    }\r
+    \r
+}\r
+\r