]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/VariableMapImpl.java
Merge commit 'ad8333027322fda6b9a8a524c7a7e15a54c52f38'
[simantics/platform.git] / bundles / org.simantics.db.layer0 / src / org / simantics / db / layer0 / variable / VariableMapImpl.java
1 package org.simantics.db.layer0.variable;\r
2 \r
3 import java.util.HashMap;\r
4 import java.util.Map;\r
5 import java.util.Set;\r
6 \r
7 import org.simantics.db.ReadGraph;\r
8 import org.simantics.db.exception.DatabaseException;\r
9 \r
10 abstract public class VariableMapImpl implements VariableMap {\r
11 \r
12         @Override\r
13         public Variable getVariable(ReadGraph graph, Variable context, String name) throws DatabaseException {\r
14                 return getVariables(graph, context, null).get(name);\r
15         }\r
16 \r
17         @Override\r
18         public Map<String, Variable> getVariables(ReadGraph graph, Variable context, String classification, Map<String, Variable> map) throws DatabaseException {\r
19                 \r
20         Map<String,Variable> all = getVariables(graph, context, null);\r
21         if(all.isEmpty()) return all;\r
22         \r
23         for(Map.Entry<String, Variable> entry : all.entrySet()) {\r
24                 Set<String> classifications = entry.getValue().getClassifications(graph);\r
25                 if(classifications.contains(classification)) {\r
26                         if(map == null) map = new HashMap<String,Variable>();\r
27                         map.put(entry.getKey(), entry.getValue());\r
28                 }\r
29         }\r
30         \r
31         return map;\r
32                 \r
33         }\r
34 \r
35 }\r