]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.district.selection/src/org/simantics/district/selection/ElementSelectionResource.java
913076ddcc694fa0531ba5fa3e56faf50eea84f9
[simantics/district.git] / org.simantics.district.selection / src / org / simantics / district / selection / ElementSelectionResource.java
1 package org.simantics.district.selection;
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 ElementSelectionResource {
12     
13     public final Resource AggregateCondition;
14     public final Resource Condition;
15     public final Resource Condition_IsInverse;
16     public final Resource Condition_IsInverse_Inverse;
17     public final Resource Conjunction;
18     public final Resource Disjunction;
19     public final Resource ElementaryCondition;
20     public final Resource Generator;
21     public final Resource Generator_Diagram;
22     public final Resource Generator_Explicit;
23     public final Resource Generator_HasDiagram;
24     public final Resource Generator_HasDiagram_Inverse;
25     public final Resource Generator_HasSelectedElement;
26     public final Resource Generator_HasSelectedElement_Inverse;
27     public final Resource Generator_Model;
28     public final Resource HasSubcondition;
29     public final Resource HasSubcondition_Inverse;
30     public final Resource Negation;
31     public final Resource PropertyCondition;
32     public final Resource PropertyCondition_HasLowerLimit;
33     public final Resource PropertyCondition_HasLowerLimit_Inverse;
34     public final Resource PropertyCondition_HasPropertyName;
35     public final Resource PropertyCondition_HasPropertyName_Inverse;
36     public final Resource PropertyCondition_HasUpperLimit;
37     public final Resource PropertyCondition_HasUpperLimit_Inverse;
38     public final Resource PropertySelector;
39     public final Resource PropertySelector_HasResultCount;
40     public final Resource PropertySelector_HasResultCount_Inverse;
41     public final Resource PropertySelector_HasSelectionPropertyName;
42     public final Resource PropertySelector_HasSelectionPropertyName_Inverse;
43     public final Resource RegionCondition;
44     public final Resource RegionCondition_HasRegion;
45     public final Resource RegionCondition_HasRegion_Inverse;
46     public final Resource RouteCondition;
47     public final Resource RouteCondition_HasRoute;
48     public final Resource RouteCondition_HasRoute_Inverse;
49     public final Resource Selection;
50     public final Resource SelectionLibrary;
51     public final Resource Selection_HasCondition;
52     public final Resource Selection_HasCondition_Inverse;
53     public final Resource Selection_HasGenerator;
54     public final Resource Selection_HasGenerator_Inverse;
55     public final Resource Selection_HasSelector;
56     public final Resource Selection_HasSelector_Inverse;
57     public final Resource Selector;
58     public final Resource Selector_All;
59     public final Resource Selector_HasMapping;
60     public final Resource Selector_NHighest;
61     public final Resource Selector_NLowest;
62         
63     public static class URIs {
64         public static final String AggregateCondition = "http://www.simantics.org/ElementSelection-1.0/AggregateCondition";
65         public static final String Condition = "http://www.simantics.org/ElementSelection-1.0/Condition";
66         public static final String Condition_IsInverse = "http://www.simantics.org/ElementSelection-1.0/Condition/IsInverse";
67         public static final String Condition_IsInverse_Inverse = "http://www.simantics.org/ElementSelection-1.0/Condition/IsInverse/Inverse";
68         public static final String Conjunction = "http://www.simantics.org/ElementSelection-1.0/Conjunction";
69         public static final String Disjunction = "http://www.simantics.org/ElementSelection-1.0/Disjunction";
70         public static final String ElementaryCondition = "http://www.simantics.org/ElementSelection-1.0/ElementaryCondition";
71         public static final String Generator = "http://www.simantics.org/ElementSelection-1.0/Generator";
72         public static final String Generator_Diagram = "http://www.simantics.org/ElementSelection-1.0/Generator/Diagram";
73         public static final String Generator_Explicit = "http://www.simantics.org/ElementSelection-1.0/Generator/Explicit";
74         public static final String Generator_HasDiagram = "http://www.simantics.org/ElementSelection-1.0/Generator/HasDiagram";
75         public static final String Generator_HasDiagram_Inverse = "http://www.simantics.org/ElementSelection-1.0/Generator/HasDiagram/Inverse";
76         public static final String Generator_HasSelectedElement = "http://www.simantics.org/ElementSelection-1.0/Generator/HasSelectedElement";
77         public static final String Generator_HasSelectedElement_Inverse = "http://www.simantics.org/ElementSelection-1.0/Generator/HasSelectedElement/Inverse";
78         public static final String Generator_Model = "http://www.simantics.org/ElementSelection-1.0/Generator/Model";
79         public static final String HasSubcondition = "http://www.simantics.org/ElementSelection-1.0/HasSubcondition";
80         public static final String HasSubcondition_Inverse = "http://www.simantics.org/ElementSelection-1.0/HasSubcondition/Inverse";
81         public static final String Negation = "http://www.simantics.org/ElementSelection-1.0/Negation";
82         public static final String PropertyCondition = "http://www.simantics.org/ElementSelection-1.0/PropertyCondition";
83         public static final String PropertyCondition_HasLowerLimit = "http://www.simantics.org/ElementSelection-1.0/PropertyCondition/HasLowerLimit";
84         public static final String PropertyCondition_HasLowerLimit_Inverse = "http://www.simantics.org/ElementSelection-1.0/PropertyCondition/HasLowerLimit/Inverse";
85         public static final String PropertyCondition_HasPropertyName = "http://www.simantics.org/ElementSelection-1.0/PropertyCondition/HasPropertyName";
86         public static final String PropertyCondition_HasPropertyName_Inverse = "http://www.simantics.org/ElementSelection-1.0/PropertyCondition/HasPropertyName/Inverse";
87         public static final String PropertyCondition_HasUpperLimit = "http://www.simantics.org/ElementSelection-1.0/PropertyCondition/HasUpperLimit";
88         public static final String PropertyCondition_HasUpperLimit_Inverse = "http://www.simantics.org/ElementSelection-1.0/PropertyCondition/HasUpperLimit/Inverse";
89         public static final String PropertySelector = "http://www.simantics.org/ElementSelection-1.0/PropertySelector";
90         public static final String PropertySelector_HasResultCount = "http://www.simantics.org/ElementSelection-1.0/PropertySelector/HasResultCount";
91         public static final String PropertySelector_HasResultCount_Inverse = "http://www.simantics.org/ElementSelection-1.0/PropertySelector/HasResultCount/Inverse";
92         public static final String PropertySelector_HasSelectionPropertyName = "http://www.simantics.org/ElementSelection-1.0/PropertySelector/HasSelectionPropertyName";
93         public static final String PropertySelector_HasSelectionPropertyName_Inverse = "http://www.simantics.org/ElementSelection-1.0/PropertySelector/HasSelectionPropertyName/Inverse";
94         public static final String RegionCondition = "http://www.simantics.org/ElementSelection-1.0/RegionCondition";
95         public static final String RegionCondition_HasRegion = "http://www.simantics.org/ElementSelection-1.0/RegionCondition/HasRegion";
96         public static final String RegionCondition_HasRegion_Inverse = "http://www.simantics.org/ElementSelection-1.0/RegionCondition/HasRegion/Inverse";
97         public static final String RouteCondition = "http://www.simantics.org/ElementSelection-1.0/RouteCondition";
98         public static final String RouteCondition_HasRoute = "http://www.simantics.org/ElementSelection-1.0/RouteCondition/HasRoute";
99         public static final String RouteCondition_HasRoute_Inverse = "http://www.simantics.org/ElementSelection-1.0/RouteCondition/HasRoute/Inverse";
100         public static final String Selection = "http://www.simantics.org/ElementSelection-1.0/Selection";
101         public static final String SelectionLibrary = "http://www.simantics.org/ElementSelection-1.0/SelectionLibrary";
102         public static final String Selection_HasCondition = "http://www.simantics.org/ElementSelection-1.0/Selection/HasCondition";
103         public static final String Selection_HasCondition_Inverse = "http://www.simantics.org/ElementSelection-1.0/Selection/HasCondition/Inverse";
104         public static final String Selection_HasGenerator = "http://www.simantics.org/ElementSelection-1.0/Selection/HasGenerator";
105         public static final String Selection_HasGenerator_Inverse = "http://www.simantics.org/ElementSelection-1.0/Selection/HasGenerator/Inverse";
106         public static final String Selection_HasSelector = "http://www.simantics.org/ElementSelection-1.0/Selection/HasSelector";
107         public static final String Selection_HasSelector_Inverse = "http://www.simantics.org/ElementSelection-1.0/Selection/HasSelector/Inverse";
108         public static final String Selector = "http://www.simantics.org/ElementSelection-1.0/Selector";
109         public static final String Selector_All = "http://www.simantics.org/ElementSelection-1.0/Selector/All";
110         public static final String Selector_HasMapping = "http://www.simantics.org/ElementSelection-1.0/Selector/HasMapping";
111         public static final String Selector_NHighest = "http://www.simantics.org/ElementSelection-1.0/Selector/NHighest";
112         public static final String Selector_NLowest = "http://www.simantics.org/ElementSelection-1.0/Selector/NLowest";
113     }
114     
115     public static Resource getResourceOrNull(ReadGraph graph, String uri) {
116         try {
117             return graph.getResource(uri);
118         } catch(DatabaseException e) {
119             System.err.println(e.getMessage());
120             return null;
121         }
122     }
123     
124     public ElementSelectionResource(ReadGraph graph) {
125         AggregateCondition = getResourceOrNull(graph, URIs.AggregateCondition);
126         Condition = getResourceOrNull(graph, URIs.Condition);
127         Condition_IsInverse = getResourceOrNull(graph, URIs.Condition_IsInverse);
128         Condition_IsInverse_Inverse = getResourceOrNull(graph, URIs.Condition_IsInverse_Inverse);
129         Conjunction = getResourceOrNull(graph, URIs.Conjunction);
130         Disjunction = getResourceOrNull(graph, URIs.Disjunction);
131         ElementaryCondition = getResourceOrNull(graph, URIs.ElementaryCondition);
132         Generator = getResourceOrNull(graph, URIs.Generator);
133         Generator_Diagram = getResourceOrNull(graph, URIs.Generator_Diagram);
134         Generator_Explicit = getResourceOrNull(graph, URIs.Generator_Explicit);
135         Generator_HasDiagram = getResourceOrNull(graph, URIs.Generator_HasDiagram);
136         Generator_HasDiagram_Inverse = getResourceOrNull(graph, URIs.Generator_HasDiagram_Inverse);
137         Generator_HasSelectedElement = getResourceOrNull(graph, URIs.Generator_HasSelectedElement);
138         Generator_HasSelectedElement_Inverse = getResourceOrNull(graph, URIs.Generator_HasSelectedElement_Inverse);
139         Generator_Model = getResourceOrNull(graph, URIs.Generator_Model);
140         HasSubcondition = getResourceOrNull(graph, URIs.HasSubcondition);
141         HasSubcondition_Inverse = getResourceOrNull(graph, URIs.HasSubcondition_Inverse);
142         Negation = getResourceOrNull(graph, URIs.Negation);
143         PropertyCondition = getResourceOrNull(graph, URIs.PropertyCondition);
144         PropertyCondition_HasLowerLimit = getResourceOrNull(graph, URIs.PropertyCondition_HasLowerLimit);
145         PropertyCondition_HasLowerLimit_Inverse = getResourceOrNull(graph, URIs.PropertyCondition_HasLowerLimit_Inverse);
146         PropertyCondition_HasPropertyName = getResourceOrNull(graph, URIs.PropertyCondition_HasPropertyName);
147         PropertyCondition_HasPropertyName_Inverse = getResourceOrNull(graph, URIs.PropertyCondition_HasPropertyName_Inverse);
148         PropertyCondition_HasUpperLimit = getResourceOrNull(graph, URIs.PropertyCondition_HasUpperLimit);
149         PropertyCondition_HasUpperLimit_Inverse = getResourceOrNull(graph, URIs.PropertyCondition_HasUpperLimit_Inverse);
150         PropertySelector = getResourceOrNull(graph, URIs.PropertySelector);
151         PropertySelector_HasResultCount = getResourceOrNull(graph, URIs.PropertySelector_HasResultCount);
152         PropertySelector_HasResultCount_Inverse = getResourceOrNull(graph, URIs.PropertySelector_HasResultCount_Inverse);
153         PropertySelector_HasSelectionPropertyName = getResourceOrNull(graph, URIs.PropertySelector_HasSelectionPropertyName);
154         PropertySelector_HasSelectionPropertyName_Inverse = getResourceOrNull(graph, URIs.PropertySelector_HasSelectionPropertyName_Inverse);
155         RegionCondition = getResourceOrNull(graph, URIs.RegionCondition);
156         RegionCondition_HasRegion = getResourceOrNull(graph, URIs.RegionCondition_HasRegion);
157         RegionCondition_HasRegion_Inverse = getResourceOrNull(graph, URIs.RegionCondition_HasRegion_Inverse);
158         RouteCondition = getResourceOrNull(graph, URIs.RouteCondition);
159         RouteCondition_HasRoute = getResourceOrNull(graph, URIs.RouteCondition_HasRoute);
160         RouteCondition_HasRoute_Inverse = getResourceOrNull(graph, URIs.RouteCondition_HasRoute_Inverse);
161         Selection = getResourceOrNull(graph, URIs.Selection);
162         SelectionLibrary = getResourceOrNull(graph, URIs.SelectionLibrary);
163         Selection_HasCondition = getResourceOrNull(graph, URIs.Selection_HasCondition);
164         Selection_HasCondition_Inverse = getResourceOrNull(graph, URIs.Selection_HasCondition_Inverse);
165         Selection_HasGenerator = getResourceOrNull(graph, URIs.Selection_HasGenerator);
166         Selection_HasGenerator_Inverse = getResourceOrNull(graph, URIs.Selection_HasGenerator_Inverse);
167         Selection_HasSelector = getResourceOrNull(graph, URIs.Selection_HasSelector);
168         Selection_HasSelector_Inverse = getResourceOrNull(graph, URIs.Selection_HasSelector_Inverse);
169         Selector = getResourceOrNull(graph, URIs.Selector);
170         Selector_All = getResourceOrNull(graph, URIs.Selector_All);
171         Selector_HasMapping = getResourceOrNull(graph, URIs.Selector_HasMapping);
172         Selector_NHighest = getResourceOrNull(graph, URIs.Selector_NHighest);
173         Selector_NLowest = getResourceOrNull(graph, URIs.Selector_NLowest);
174     }
175     
176     public static ElementSelectionResource getInstance(ReadGraph graph) {
177         Session session = graph.getSession();
178         ElementSelectionResource ret = session.peekService(ElementSelectionResource.class);
179         if(ret == null) {
180             QueryControl qc = graph.getService(QueryControl.class);
181             ret = new ElementSelectionResource(qc.getIndependentGraph(graph));
182             session.registerService(ElementSelectionResource.class, ret);
183         }
184         return ret;
185     }
186     
187     public static ElementSelectionResource getInstance(RequestProcessor session) throws DatabaseException {
188         ElementSelectionResource ret = session.peekService(ElementSelectionResource.class);
189         if(ret == null) {
190             ret = session.syncRequest(new Read<ElementSelectionResource>() {
191                 public ElementSelectionResource perform(ReadGraph graph) throws DatabaseException {
192                     QueryControl qc = graph.getService(QueryControl.class);
193                     return new ElementSelectionResource(qc.getIndependentGraph(graph));
194                 }
195             });
196             session.registerService(ElementSelectionResource.class, ret);
197         }
198         return ret;
199     }
200     
201 }
202