def lopUselessLeaves(cls, pn): """ generated source for method lopUselessLeaves """ usefulComponents = HashSet() toAdd = Stack() toAdd.add(pn.getTerminalProposition()) usefulComponents.add(pn.getInitProposition()) for goalProps in pn.getGoalPropositions().values(): toAdd.addAll(goalProps) for legalProps in pn.getLegalPropositions().values(): toAdd.addAll(legalProps) while not toAdd.isEmpty(): if usefulComponents.contains(curComp): continue usefulComponents.add(curComp) toAdd.addAll(curComp.getInputs()) allComponents = ArrayList(pn.getComponents()) for c in allComponents: if not usefulComponents.contains(c): pn.removeComponent(c)