]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.dublincore.ontology/src/org/simantics/layer0/DublinCore.java
(refs #7177) Rounded connections
[simantics/platform.git] / bundles / org.simantics.dublincore.ontology / src / org / simantics / layer0 / DublinCore.java
1 package org.simantics.layer0;
2
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;
10
11 public class DublinCore {
12     
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;
32         
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";
53     }
54     
55     public static Resource getResourceOrNull(ReadGraph graph, String uri) {
56         try {
57             return graph.getResource(uri);
58         } catch(DatabaseException e) {
59             System.err.println(e.getMessage());
60             return null;
61         }
62     }
63     
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);
84     }
85     
86     public static DublinCore getInstance(ReadGraph graph) {
87         Session session = graph.getSession();
88         DublinCore ret = session.peekService(DublinCore.class);
89         if(ret == null) {
90             QueryControl qc = graph.getService(QueryControl.class);
91             ret = new DublinCore(qc.getIndependentGraph(graph));
92             session.registerService(DublinCore.class, ret);
93         }
94         return ret;
95     }
96     
97     public static DublinCore getInstance(RequestProcessor session) throws DatabaseException {
98         DublinCore ret = session.peekService(DublinCore.class);
99         if(ret == null) {
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));
104                 }
105             });
106             session.registerService(DublinCore.class, ret);
107         }
108         return ret;
109     }
110     
111 }
112