1 package org.simantics.db.layer0.variable;
\r
3 import java.util.HashMap;
\r
4 import java.util.Map;
\r
5 import java.util.Set;
\r
7 import org.simantics.db.ReadGraph;
\r
8 import org.simantics.db.exception.DatabaseException;
\r
10 abstract public class VariableMapImpl implements VariableMap {
\r
13 public Variable getVariable(ReadGraph graph, Variable context, String name) throws DatabaseException {
\r
14 return getVariables(graph, context, null).get(name);
\r
18 public Map<String, Variable> getVariables(ReadGraph graph, Variable context, String classification, Map<String, Variable> map) throws DatabaseException {
\r
20 Map<String,Variable> all = getVariables(graph, context, null);
\r
21 if(all.isEmpty()) return all;
\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