1 package org.simantics.layer0;
\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
11 public class PredicateResource {
\r
13 public final Resource AppliesFirst;
\r
14 public final Resource AppliesThen;
\r
15 public final Resource BinaryPredicate;
\r
16 public final Resource CompositePredicate;
\r
17 public final Resource Conjunction;
\r
18 public final Resource Disjunction;
\r
19 public final Resource HasBinaryPredicate;
\r
20 public final Resource HasPredicate;
\r
21 public final Resource IntersectionPredicate;
\r
22 public final Resource InversePredicate;
\r
23 public final Resource Negation;
\r
24 public final Resource OrderedSetElements;
\r
25 public final Resource Predicate;
\r
26 public final Resource TransitiveClosure;
\r
27 public final Resource UnionPredicate;
\r
29 public static class URIs {
\r
30 public static final String AppliesFirst = "http://www.simantics.org/Layer0X-1.1/Predicate/AppliesFirst";
\r
31 public static final String AppliesThen = "http://www.simantics.org/Layer0X-1.1/Predicate/AppliesThen";
\r
32 public static final String BinaryPredicate = "http://www.simantics.org/Layer0X-1.1/Predicate/BinaryPredicate";
\r
33 public static final String CompositePredicate = "http://www.simantics.org/Layer0X-1.1/Predicate/CompositePredicate";
\r
34 public static final String Conjunction = "http://www.simantics.org/Layer0X-1.1/Predicate/Conjunction";
\r
35 public static final String Disjunction = "http://www.simantics.org/Layer0X-1.1/Predicate/Disjunction";
\r
36 public static final String HasBinaryPredicate = "http://www.simantics.org/Layer0X-1.1/Predicate/HasBinaryPredicate";
\r
37 public static final String HasPredicate = "http://www.simantics.org/Layer0X-1.1/Predicate/HasPredicate";
\r
38 public static final String IntersectionPredicate = "http://www.simantics.org/Layer0X-1.1/Predicate/IntersectionPredicate";
\r
39 public static final String InversePredicate = "http://www.simantics.org/Layer0X-1.1/Predicate/InversePredicate";
\r
40 public static final String Negation = "http://www.simantics.org/Layer0X-1.1/Predicate/Negation";
\r
41 public static final String OrderedSetElements = "http://www.simantics.org/Layer0X-1.1/Predicate/OrderedSetElements";
\r
42 public static final String Predicate = "http://www.simantics.org/Layer0X-1.1/Predicate/Predicate";
\r
43 public static final String TransitiveClosure = "http://www.simantics.org/Layer0X-1.1/Predicate/TransitiveClosure";
\r
44 public static final String UnionPredicate = "http://www.simantics.org/Layer0X-1.1/Predicate/UnionPredicate";
\r
47 public static Resource getResourceOrNull(ReadGraph graph, String uri) {
\r
49 return graph.getResource(uri);
\r
50 } catch(DatabaseException e) {
\r
51 System.err.println(e.getMessage());
\r
56 public PredicateResource(ReadGraph graph) {
\r
57 AppliesFirst = getResourceOrNull(graph, URIs.AppliesFirst);
\r
58 AppliesThen = getResourceOrNull(graph, URIs.AppliesThen);
\r
59 BinaryPredicate = getResourceOrNull(graph, URIs.BinaryPredicate);
\r
60 CompositePredicate = getResourceOrNull(graph, URIs.CompositePredicate);
\r
61 Conjunction = getResourceOrNull(graph, URIs.Conjunction);
\r
62 Disjunction = getResourceOrNull(graph, URIs.Disjunction);
\r
63 HasBinaryPredicate = getResourceOrNull(graph, URIs.HasBinaryPredicate);
\r
64 HasPredicate = getResourceOrNull(graph, URIs.HasPredicate);
\r
65 IntersectionPredicate = getResourceOrNull(graph, URIs.IntersectionPredicate);
\r
66 InversePredicate = getResourceOrNull(graph, URIs.InversePredicate);
\r
67 Negation = getResourceOrNull(graph, URIs.Negation);
\r
68 OrderedSetElements = getResourceOrNull(graph, URIs.OrderedSetElements);
\r
69 Predicate = getResourceOrNull(graph, URIs.Predicate);
\r
70 TransitiveClosure = getResourceOrNull(graph, URIs.TransitiveClosure);
\r
71 UnionPredicate = getResourceOrNull(graph, URIs.UnionPredicate);
\r
74 public static PredicateResource getInstance(ReadGraph graph) {
\r
75 Session session = graph.getSession();
\r
76 PredicateResource ret = session.peekService(PredicateResource.class);
\r
78 QueryControl qc = graph.getService(QueryControl.class);
\r
79 ret = new PredicateResource(qc.getIndependentGraph(graph));
\r
80 session.registerService(PredicateResource.class, ret);
\r
85 public static PredicateResource getInstance(RequestProcessor session) throws DatabaseException {
\r
86 PredicateResource ret = session.peekService(PredicateResource.class);
\r
88 ret = session.syncRequest(new Read<PredicateResource>() {
\r
89 public PredicateResource perform(ReadGraph graph) throws DatabaseException {
\r
90 QueryControl qc = graph.getService(QueryControl.class);
\r
91 return new PredicateResource(qc.getIndependentGraph(graph));
\r
94 session.registerService(PredicateResource.class, ret);
\r