X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.db.layer0%2Fsrc%2Forg%2Fsimantics%2Fdb%2Flayer0%2Ffunction%2FStandardChildDomainChildren.java;h=70e7ffaaf46e81300fab40dedb1ea26bb27c7ad9;hb=ccb253462b54a0e036f0906ec8ac11a9021a968c;hp=853135bd1b2a01c09b841d6f969ca04715bec7b9;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/function/StandardChildDomainChildren.java b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/function/StandardChildDomainChildren.java index 853135bd1..70e7ffaaf 100644 --- a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/function/StandardChildDomainChildren.java +++ b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/function/StandardChildDomainChildren.java @@ -1,86 +1,86 @@ -package org.simantics.db.layer0.function; - -import java.util.Collection; -import java.util.Map; -import java.util.Set; - -import org.simantics.db.ReadGraph; -import org.simantics.db.Resource; -import org.simantics.db.exception.DatabaseException; -import org.simantics.db.layer0.variable.AbstractVariable; -import org.simantics.db.layer0.variable.Variable; -import org.simantics.db.layer0.variable.VariableMapImpl; - -import gnu.trove.set.hash.THashSet; - -public class StandardChildDomainChildren extends VariableMapImpl { - - @Override - public Variable getVariable(ReadGraph graph, Variable context, String name) throws DatabaseException { - return getStandardChildDomainChildVariable(graph, context, name); - } - - @Override - public Map getVariables(ReadGraph graph, Variable context, Map map) throws DatabaseException { - return getStandardChildDomainChildVariables(graph, context, map); - } - - public static Variable getStandardChildDomainChildVariable(ReadGraph graph, Variable context, String name) throws DatabaseException { - Resource graphChild = All.getPossibleGraphChild(graph, context, name); - return getStandardChildDomainChildVariable(graph, context, graphChild, name); - } - - public static Variable getStandardChildDomainChildVariable(ReadGraph graph, Variable context, Resource graphChild, String name) throws DatabaseException { - AbstractVariable variable = (AbstractVariable)context; - Object childNode = All.getPossibleNodeChild(graph, variable, name); - if(graphChild != null) - return All.buildChildVariable(graph, context, graphChild, childNode); - if(childNode != null) - return All.createStandardGraphChildVariable(variable, childNode); - return null; - } - - public static Map getStandardChildDomainChildVariables(ReadGraph graph, Variable context, Map map) throws DatabaseException { - Map graphChildren = All.getPossibleGraphChildren(graph, context); - return StandardChildDomainChildren.getStandardChildDomainChildVariables(graph, context, graphChildren, map); - } - - public static Map getStandardChildDomainChildVariables(ReadGraph graph, Variable context, Map graphChildren, Map map) throws DatabaseException { - - AbstractVariable variable = (AbstractVariable)context; - - Collection nodeChildren = All.getPossibleNodeChildren(graph, variable); - - if(graphChildren.isEmpty() && nodeChildren.isEmpty()) return map; - - Set used = new THashSet(nodeChildren.size()); - - map = All.ensureVariableMap(map, graphChildren.size()); - - for(Object nodeChild : nodeChildren) { - String name = All.getNodeName(variable, nodeChild); - used.add(name); - Resource graphChild = graphChildren.get(name); - if(graphChild != null){ - Variable var = All.buildChildVariable(graph, context, graphChild, nodeChild); - if(var != null) { - map.put(name, var); - continue; - } - } - map.put(name, All.createStandardGraphChildVariable(variable, nodeChild)); - } - - for(Map.Entry entry : graphChildren.entrySet()) { - String name = entry.getKey(); - if(used.contains(name)) continue; - Resource child = entry.getValue(); - Variable var = All.buildChildVariable(graph, context, child, null); - if(var != null) map.put(name, var); - } - - return map; - - } - -} +package org.simantics.db.layer0.function; + +import java.util.Collection; +import java.util.Map; +import java.util.Set; + +import org.simantics.db.ReadGraph; +import org.simantics.db.Resource; +import org.simantics.db.exception.DatabaseException; +import org.simantics.db.layer0.variable.AbstractVariable; +import org.simantics.db.layer0.variable.Variable; +import org.simantics.db.layer0.variable.VariableMapImpl; + +import gnu.trove.set.hash.THashSet; + +public class StandardChildDomainChildren extends VariableMapImpl { + + @Override + public Variable getVariable(ReadGraph graph, Variable context, String name) throws DatabaseException { + return getStandardChildDomainChildVariable(graph, context, name); + } + + @Override + public Map getVariables(ReadGraph graph, Variable context, Map map) throws DatabaseException { + return getStandardChildDomainChildVariables(graph, context, map); + } + + public static Variable getStandardChildDomainChildVariable(ReadGraph graph, Variable context, String name) throws DatabaseException { + Resource graphChild = All.getPossibleGraphChild(graph, context, name); + return getStandardChildDomainChildVariable(graph, context, graphChild, name); + } + + public static Variable getStandardChildDomainChildVariable(ReadGraph graph, Variable context, Resource graphChild, String name) throws DatabaseException { + AbstractVariable variable = (AbstractVariable)context; + Object childNode = All.getPossibleNodeChild(graph, variable, name); + if(graphChild != null) + return All.buildChildVariable(graph, context, graphChild, childNode); + if(childNode != null) + return All.createStandardGraphChildVariable(variable, childNode); + return null; + } + + public static Map getStandardChildDomainChildVariables(ReadGraph graph, Variable context, Map map) throws DatabaseException { + Map graphChildren = All.getPossibleGraphChildren(graph, context); + return StandardChildDomainChildren.getStandardChildDomainChildVariables(graph, context, graphChildren, map); + } + + public static Map getStandardChildDomainChildVariables(ReadGraph graph, Variable context, Map graphChildren, Map map) throws DatabaseException { + + AbstractVariable variable = (AbstractVariable)context; + + Collection nodeChildren = All.getPossibleNodeChildren(graph, variable); + + if(graphChildren.isEmpty() && nodeChildren.isEmpty()) return map; + + Set used = new THashSet(nodeChildren.size()); + + map = All.ensureVariableMap(map, graphChildren.size()); + + for(Object nodeChild : nodeChildren) { + String name = All.getNodeName(variable, nodeChild); + used.add(name); + Resource graphChild = graphChildren.get(name); + if(graphChild != null){ + Variable var = All.buildChildVariable(graph, context, graphChild, nodeChild); + if(var != null) { + map.put(name, var); + continue; + } + } + map.put(name, All.createStandardGraphChildVariable(variable, nodeChild)); + } + + for(Map.Entry entry : graphChildren.entrySet()) { + String name = entry.getKey(); + if(used.contains(name)) continue; + Resource child = entry.getValue(); + Variable var = All.buildChildVariable(graph, context, child, null); + if(var != null) map.put(name, var); + } + + return map; + + } + +}