Map<TripleItem, String> mapIntermediateLoc = new HashMap<TripleItem, String>();
- System.out.println("*insert=" + desc);
- System.out.println("***nodeSet=" + nodeSet);
+ // System.out.println("*insert=" + desc);
+ // System.out.println("***nodeSet=" + nodeSet);
for (Iterator iterator = nodeSet.iterator(); iterator.hasNext();) {
HNode node = (HNode) iterator.next();
- System.out.println("node=" + node);
+ // System.out.println("node=" + node);
if (node.isSkeleton() && (!visited.contains(node))) {
visited.add(node);
HNode sharedNode = (HNode) iterator.next();
TripleItem item = mapSharedNodeToTripleItem.get(sharedNode);
String nonSharedLocName = mapIntermediateLoc.get(item);
- System.out.println("sharedNode=" + sharedNode + " locName=" + nonSharedLocName);
+ // System.out.println("sharedNode=" + sharedNode + " locName=" + nonSharedLocName);
String newLocName;
if (locSummary.getHNodeNameSetByLatticeLoationName(nonSharedLocName) != null
Set<String> belowElementSet = new HashSet<String>();
belowElementSet.addAll(lattice.get(nonSharedLocName));
- System.out.println("nonSharedLocName=" + nonSharedLocName + " belowElementSet="
- + belowElementSet + " newLocName=" + newLocName);
+ // System.out.println("nonSharedLocName=" + nonSharedLocName + " belowElementSet="
+ // + belowElementSet + " newLocName=" + newLocName);
lattice.insertNewLocationBetween(nonSharedLocName, belowElementSet, newLocName);
} else {
Set<HNode> visited, Map<TripleItem, String> mapIntermediateLoc, LocationSummary locSummary,
HNode cnode) {
- System.out.println("expandCombinationNode=" + cnode);
+ // System.out.println("expandCombinationNode=" + cnode);
// expand the combination node 'outNode'
// here we need to expand the corresponding combination location in the lattice
HNode combinationNodeInSCGraph = getCombinationNodeInSCGraph(desc, cnode);
// follows the straight line up to another skeleton/combination node
if (endCombNodeSet.size() > 0) {
- System.out.println("---endCombNodeSet=" + endCombNodeSet);
+ // System.out.println("---endCombNodeSet=" + endCombNodeSet);
endCombNodeSet =
removeTransitivelyReachToNode(desc, combinationNodeInSCGraph, endCombNodeSet);
private HNode getDirectlyReachableSCNodeFromEndNode(HierarchyGraph scGraph, HNode startNode,
Set<HNode> endNodeSet) {
- System.out.println("getDirectlyReachableSCNodeFromEndNode start=" + startNode + " endNodeSet="
- + endNodeSet);
+ // System.out.println("getDirectlyReachableSCNodeFromEndNode start=" + startNode +
+ // " endNodeSet="
+ // + endNodeSet);
Set<HNode> newStartNodeSet = new HashSet<HNode>();
for (Iterator iterator = endNodeSet.iterator(); iterator.hasNext();) {
}
}
- System.out.println("newStartNodeSet=" + newStartNodeSet);
+ // System.out.println("newStartNodeSet=" + newStartNodeSet);
if (newStartNodeSet.size() == 0) {
newStartNodeSet.add(startNode);
private HNode getDirectlyReachableNodeFromStartNodeReachToEndNode(HierarchyGraph scGraph,
HNode startNode, HNode endNode) {
- System.out.println("getDirectlyReachableNodeFromStartNodeReachToEndNode start=" + startNode
- + " end=" + endNode);
+ // System.out.println("getDirectlyReachableNodeFromStartNodeReachToEndNode start=" + startNode
+ // + " end=" + endNode);
Set<HNode> connected = new HashSet<HNode>();
recurDirectlyReachableNodeFromStartNodeReachToEndNode(scGraph, startNode, endNode, connected);
if (connected.size() == 0) {
connected.add(endNode);
}
- System.out.println("connected=" + connected);
+ // System.out.println("connected=" + connected);
return connected.iterator().next();
}
locSummary.addMapHNodeNameToLocationName(curNode.getName(), locName);
}
- System.out.println("-TripleItem=" + item);
- System.out.println("-curNode=" + curNode.getName() + " S=" + curNode.isSharedNode()
- + " locName=" + locName);
+ // System.out.println("-TripleItem=" + item);
+ // System.out.println("-curNode=" + curNode.getName() + " S=" + curNode.isSharedNode()
+ // + " locName=" + locName);
Set<HNode> outSet = graph.getOutgoingNodeSet(curNode);
for (Iterator iterator2 = outSet.iterator(); iterator2.hasNext();) {
HNode outNode = (HNode) iterator2.next();
- if (!outNode.isSkeleton() && !outNode.isCombinationNode() && !visited.contains(outNode)) {
- visited.add(outNode);
- recurDFSNormalNode(desc, lattice, startNode, endNodeSet, visited, mapIntermediateLoc,
- idx + 1, locSummary, outNode);
- } else if (!outNode.isSkeleton() && outNode.isCombinationNode() && !visited.contains(outNode)) {
- expandCombinationNode(desc, lattice, visited, mapIntermediateLoc, locSummary, outNode);
+
+ Set<HNode> inNodeSetToOutNode = graph.getIncomingNodeSet(outNode);
+
+ if (visited.containsAll(inNodeSetToOutNode)) {
+ if (!outNode.isSkeleton() && !outNode.isCombinationNode() && !visited.contains(outNode)) {
+ visited.add(outNode);
+ recurDFSNormalNode(desc, lattice, startNode, endNodeSet, visited, mapIntermediateLoc,
+ idx + 1, locSummary, outNode);
+ } else if (!outNode.isSkeleton() && outNode.isCombinationNode()
+ && !visited.contains(outNode)) {
+ expandCombinationNode(desc, lattice, visited, mapIntermediateLoc, locSummary, outNode);
+ }
}
+
}
}
locSummary.addMapHNodeNameToLocationName(curNode.getName(), locName);
}
- System.out.println("-TripleItem=" + item);
- System.out.println("-curNode=" + curNode.getName() + " S=" + curNode.isSharedNode()
- + " locName=" + locName);
+ // System.out.println("-TripleItem=" + item);
+ // System.out.println("-curNode=" + curNode.getName() + " S=" + curNode.isSharedNode()
+ // + " locName=" + locName);
Set<HNode> outSet = graph.getOutgoingNodeSet(curNode);
for (Iterator iterator2 = outSet.iterator(); iterator2.hasNext();) {
// System.out.println("---cur combinationNodeInSCGraph=" + combinationNodeInSCGraph);
// System.out.println("---outNode combinationNodeInSCGraph="
// + getCombinationNodeInSCGraph(desc, outNode));
- if (!outNode.isSkeleton() && !visited.contains(outNode)) {
- if (outNode.isCombinationNode()) {
- // check whether the next combination node is different from the current node
- if (combinationNodeInSCGraph.equals(getCombinationNodeInSCGraph(desc, outNode))) {
- visited.add(outNode);
- recurDFS(desc, lattice, combinationNodeInSCGraph, endNodeSet, visited,
- mapIntermediateLoc, idx + 1, locSummary, outNode);
- } else {
- expandCombinationNode(desc, lattice, visited, mapIntermediateLoc, locSummary, outNode);
+
+ Set<HNode> inNodeSetToOutNode = graph.getIncomingNodeSet(outNode);
+
+ if (visited.containsAll(inNodeSetToOutNode)) {
+ if (!outNode.isSkeleton() && !visited.contains(outNode)) {
+ if (outNode.isCombinationNode()) {
+ // check whether the next combination node is different from the current node
+ if (combinationNodeInSCGraph.equals(getCombinationNodeInSCGraph(desc, outNode))) {
+ visited.add(outNode);
+ recurDFS(desc, lattice, combinationNodeInSCGraph, endNodeSet, visited,
+ mapIntermediateLoc, idx + 1, locSummary, outNode);
+ } else {
+ expandCombinationNode(desc, lattice, visited, mapIntermediateLoc, locSummary, outNode);
+ }
}
- }
+ }
}
+
}
}