Edge edge = parentNode.getOutgoingEdges().get(currentNode);
HashMap<Transition, ArrayList<NameValuePair>> setSets = edge.getSetSetMap();
HashSet<String> updatedVarNames = new HashSet<String>();
- HashSet<String> outSetVarMap = new HashSet<String>();
boolean isChanged = false;
for (Map.Entry mapElement : setSets.entrySet()) {
}
for (NameValuePair i : parentNode.getOutSet()) {
- outSetVarMap.add(i.getVarName());
if (!updatedVarNames.contains(i.getVarName()))
isChanged |= currentNode.getOutSet().add(i);
}
ArrayList<NameValuePair> lastSetSet = setSets.get(edge.getFinalTransition());
for (int i = 0;i < lastSetSet.size();i++) {
- String var = lastSetSet.get(i).getVarName();
-
- if (outSetVarMap.contains(var)) {
- currentNode.getOutSet().remove(lastSetSet.get(i));
- }
isChanged |= currentNode.getOutSet().add(lastSetSet.get(i));
}
return isChanged;