]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.layer0x.ontology/src/org/simantics/layer0/RequirementResource.java
(refs #7177) Rounded connections
[simantics/platform.git] / bundles / org.simantics.layer0x.ontology / src / org / simantics / layer0 / RequirementResource.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 RequirementResource {
12     
13     public final Resource AllValuesSatisfy;
14     public final Resource AllValuesSatisfy_Inverse;
15     public final Resource EqualityRequirement;
16     public final Resource HasEntity;
17     public final Resource HasMultiplicity;
18     public final Resource HasMultiplicity_Inverse;
19     public final Resource HasRequirement;
20     public final Resource HasRequirement_Inverse;
21     public final Resource HasType;
22     public final Resource HasValueRequirement;
23     public final Resource HasValueRequirement_Inverse;
24     public final Resource Ignore;
25     public final Resource IntegerRangeUnion;
26     public final Resource RelationRequirement;
27     public final Resource Requirement;
28     public final Resource RequirementConjunction;
29     public final Resource RequirementDisjunction;
30     public final Resource RequirementNegation;
31     public final Resource Requires;
32     public final Resource SomeValuesSatisfy;
33     public final Resource SomeValuesSatisfy_Inverse;
34     public final Resource TypeRequirement;
35     public final Resource ValueRequirement;
36     public final Resource ValueType;
37         
38     public static class URIs {
39         public static final String AllValuesSatisfy = "http://www.simantics.org/Layer0X-1.1/Requirement/AllValuesSatisfy";
40         public static final String AllValuesSatisfy_Inverse = "http://www.simantics.org/Layer0X-1.1/Requirement/AllValuesSatisfy/Inverse";
41         public static final String EqualityRequirement = "http://www.simantics.org/Layer0X-1.1/Requirement/EqualityRequirement";
42         public static final String HasEntity = "http://www.simantics.org/Layer0X-1.1/Requirement/HasEntity";
43         public static final String HasMultiplicity = "http://www.simantics.org/Layer0X-1.1/Requirement/HasMultiplicity";
44         public static final String HasMultiplicity_Inverse = "http://www.simantics.org/Layer0X-1.1/Requirement/HasMultiplicity/Inverse";
45         public static final String HasRequirement = "http://www.simantics.org/Layer0X-1.1/Requirement/HasRequirement";
46         public static final String HasRequirement_Inverse = "http://www.simantics.org/Layer0X-1.1/Requirement/HasRequirement/Inverse";
47         public static final String HasType = "http://www.simantics.org/Layer0X-1.1/Requirement/HasType";
48         public static final String HasValueRequirement = "http://www.simantics.org/Layer0X-1.1/Requirement/HasValueRequirement";
49         public static final String HasValueRequirement_Inverse = "http://www.simantics.org/Layer0X-1.1/Requirement/HasValueRequirement/Inverse";
50         public static final String Ignore = "http://www.simantics.org/Layer0X-1.1/Requirement/Ignore";
51         public static final String IntegerRangeUnion = "http://www.simantics.org/Layer0X-1.1/Requirement/IntegerRangeUnion";
52         public static final String RelationRequirement = "http://www.simantics.org/Layer0X-1.1/Requirement/RelationRequirement";
53         public static final String Requirement = "http://www.simantics.org/Layer0X-1.1/Requirement/Requirement";
54         public static final String RequirementConjunction = "http://www.simantics.org/Layer0X-1.1/Requirement/RequirementConjunction";
55         public static final String RequirementDisjunction = "http://www.simantics.org/Layer0X-1.1/Requirement/RequirementDisjunction";
56         public static final String RequirementNegation = "http://www.simantics.org/Layer0X-1.1/Requirement/RequirementNegation";
57         public static final String Requires = "http://www.simantics.org/Layer0X-1.1/Requirement/Requires";
58         public static final String SomeValuesSatisfy = "http://www.simantics.org/Layer0X-1.1/Requirement/SomeValuesSatisfy";
59         public static final String SomeValuesSatisfy_Inverse = "http://www.simantics.org/Layer0X-1.1/Requirement/SomeValuesSatisfy/Inverse";
60         public static final String TypeRequirement = "http://www.simantics.org/Layer0X-1.1/Requirement/TypeRequirement";
61         public static final String ValueRequirement = "http://www.simantics.org/Layer0X-1.1/Requirement/ValueRequirement";
62         public static final String ValueType = "http://www.simantics.org/Layer0X-1.1/Requirement/ValueType";
63     }
64     
65     public static Resource getResourceOrNull(ReadGraph graph, String uri) {
66         try {
67             return graph.getResource(uri);
68         } catch(DatabaseException e) {
69             System.err.println(e.getMessage());
70             return null;
71         }
72     }
73     
74     public RequirementResource(ReadGraph graph) {
75         AllValuesSatisfy = getResourceOrNull(graph, URIs.AllValuesSatisfy);
76         AllValuesSatisfy_Inverse = getResourceOrNull(graph, URIs.AllValuesSatisfy_Inverse);
77         EqualityRequirement = getResourceOrNull(graph, URIs.EqualityRequirement);
78         HasEntity = getResourceOrNull(graph, URIs.HasEntity);
79         HasMultiplicity = getResourceOrNull(graph, URIs.HasMultiplicity);
80         HasMultiplicity_Inverse = getResourceOrNull(graph, URIs.HasMultiplicity_Inverse);
81         HasRequirement = getResourceOrNull(graph, URIs.HasRequirement);
82         HasRequirement_Inverse = getResourceOrNull(graph, URIs.HasRequirement_Inverse);
83         HasType = getResourceOrNull(graph, URIs.HasType);
84         HasValueRequirement = getResourceOrNull(graph, URIs.HasValueRequirement);
85         HasValueRequirement_Inverse = getResourceOrNull(graph, URIs.HasValueRequirement_Inverse);
86         Ignore = getResourceOrNull(graph, URIs.Ignore);
87         IntegerRangeUnion = getResourceOrNull(graph, URIs.IntegerRangeUnion);
88         RelationRequirement = getResourceOrNull(graph, URIs.RelationRequirement);
89         Requirement = getResourceOrNull(graph, URIs.Requirement);
90         RequirementConjunction = getResourceOrNull(graph, URIs.RequirementConjunction);
91         RequirementDisjunction = getResourceOrNull(graph, URIs.RequirementDisjunction);
92         RequirementNegation = getResourceOrNull(graph, URIs.RequirementNegation);
93         Requires = getResourceOrNull(graph, URIs.Requires);
94         SomeValuesSatisfy = getResourceOrNull(graph, URIs.SomeValuesSatisfy);
95         SomeValuesSatisfy_Inverse = getResourceOrNull(graph, URIs.SomeValuesSatisfy_Inverse);
96         TypeRequirement = getResourceOrNull(graph, URIs.TypeRequirement);
97         ValueRequirement = getResourceOrNull(graph, URIs.ValueRequirement);
98         ValueType = getResourceOrNull(graph, URIs.ValueType);
99     }
100     
101     public static RequirementResource getInstance(ReadGraph graph) {
102         Session session = graph.getSession();
103         RequirementResource ret = session.peekService(RequirementResource.class);
104         if(ret == null) {
105             QueryControl qc = graph.getService(QueryControl.class);
106             ret = new RequirementResource(qc.getIndependentGraph(graph));
107             session.registerService(RequirementResource.class, ret);
108         }
109         return ret;
110     }
111     
112     public static RequirementResource getInstance(RequestProcessor session) throws DatabaseException {
113         RequirementResource ret = session.peekService(RequirementResource.class);
114         if(ret == null) {
115             ret = session.syncRequest(new Read<RequirementResource>() {
116                 public RequirementResource perform(ReadGraph graph) throws DatabaseException {
117                     QueryControl qc = graph.getService(QueryControl.class);
118                     return new RequirementResource(qc.getIndependentGraph(graph));
119                 }
120             });
121             session.registerService(RequirementResource.class, ret);
122         }
123         return ret;
124     }
125     
126 }
127