import org.simantics.db.common.request.BinaryRead;
import org.simantics.db.common.request.ResourceRead;
import org.simantics.db.common.request.TransientUnaryRead;
-import org.simantics.db.common.utils.CommonDBUtils;
import org.simantics.db.common.utils.NameUtils;
+import org.simantics.db.common.utils.NearestOwnerFinder;
import org.simantics.db.exception.DatabaseException;
import org.simantics.db.exception.NoSingleResultException;
import org.simantics.db.layer0.exception.MissingVariableException;
import org.simantics.structural2.queries.ConnectionSet;
import org.simantics.structural2.utils.StructuralUtils;
import org.simantics.structural2.utils.StructuralUtils.StructuralComponentClass;
-import org.simantics.structural2.variables.StandardProceduralChildVariable.FixedConnection;
-import org.simantics.utils.datastructures.Pair;
import gnu.trove.map.hash.THashMap;
import gnu.trove.set.hash.THashSet;
for (Resource composite : graph.getObjects(join, STR.JoinsComposite))
ancestorGenerators.add(composite);
}
- Resource ancestor = ancestorGenerators.size() == 1 ? ancestorGenerators.iterator().next() : CommonDBUtils.getNearestOwner(graph, ancestorGenerators);
+ Resource ancestor = ancestorGenerators.size() == 1 ? ancestorGenerators.iterator().next() : NearestOwnerFinder.getNearestOwnerFromDirectOwners(graph, ancestorGenerators);
List<Resource> result = colls.createList();
result.add(ancestor);
Variable conn = child.getPossibleProperty(graph, cp);
FixedConnection fc = (FixedConnection)conn.getValue(graph);
- Set<VariableConnectionPointDescriptor> result = new THashSet<VariableConnectionPointDescriptor>(1+fc.cps.size());
- result.add(new ComponentConnectionDescriptor(child, cp));// (graph, STR, curConfiguration, "/" + c.name + "#" + conn.getName(graph)));
- for(Pair<String,Resource> cpzz : fc.cps) {
- if(cpzz.first == null) {
- throw new DatabaseException("Lifted connection was not resolved.");
- }
- result.add(new PairConnectionDescriptor(curConfiguration, cpzz));
- }
+ Set<VariableConnectionPointDescriptor> result = new THashSet<VariableConnectionPointDescriptor>(1+fc.size());
+ result.add(new ComponentConnectionDescriptor(child, cp));
+ fc.addConnectionDescriptors(graph, curConfiguration, result);
return result;
} else {