/** * @return an {@link Iterator} of all instructions (Normal, Phi, and Catch) */ public Iterator<SSAInstruction> iterateAllInstructions() { return new CompoundIterator<>(iterateNormalInstructions(), new CompoundIterator<>( iterateCatchInstructions(), new CompoundIterator<>(iteratePhis(), iteratePis()))); }
/** * @return an {@link Iterator} of all instructions (Normal, Phi, and Catch) */ public Iterator<SSAInstruction> iterateAllInstructions() { return new CompoundIterator<>(iterateNormalInstructions(), new CompoundIterator<>( iterateCatchInstructions(), new CompoundIterator<>(iteratePhis(), iteratePis()))); }
@Override public Iterator<T> iterator() { return new CompoundIterator<>(original.iterator(), additionalNodes.iterator()); }
@Override public Iterator<T> iterator() { return new CompoundIterator<>(original.iterator(), additionalNodes.iterator()); }
@Override public Iterator<T> iterator() { return new CompoundIterator<>(original.iterator(), additionalNodes.iterator()); }
@Override public Iterator<Object> iterator() { return new CompoundIterator<>(pointerKeys.iterator(), P.getInstanceKeyMapping().iterator()); }
@Override public Iterator<Object> iterator() { return new CompoundIterator<>(pointerKeys.iterator(), P.getInstanceKeyMapping().iterator()); }
@Override public Iterator<T> getSuccNodes(T N) { int number = getNumber(N); if (normalToExit.get(number) && exceptionalToExit.get(number)) { return new CompoundIterator<>(iterateNormalSuccessorsWithoutExit(number), iterateExceptionalSuccessors(number)); } else { return new CompoundIterator<>(iterateNormalSuccessors(number), iterateExceptionalSuccessors(number)); } }
@Override public Iterator<T> getSuccNodes(T N) { int number = getNumber(N); if (normalToExit.get(number) && exceptionalToExit.get(number)) { return new CompoundIterator<>(iterateNormalSuccessorsWithoutExit(number), iterateExceptionalSuccessors(number)); } else { return new CompoundIterator<>(iterateNormalSuccessors(number), iterateExceptionalSuccessors(number)); } }
@Override public Iterator<T> getSuccNodes(T n) { Iterator<T> orig = (original.containsNode(n)? original.getSuccNodes(n): EmptyIterator.<T>instance()); return new CompoundIterator<>(orig, nodes(n, outEdges)); }
@Override public Iterator<T> getSuccNodes(T n) { Iterator<T> orig = (original.containsNode(n)? original.getSuccNodes(n): EmptyIterator.<T>instance()); return new CompoundIterator<>(orig, nodes(n, outEdges)); }
@Override public Iterator<T> getPredNodes(T n) { Iterator<T> orig = (original.containsNode(n)? original.getPredNodes(n): EmptyIterator.<T>instance()); return new CompoundIterator<>(orig, nodes(n, inEdges)); }
@Override public Iterator<T> getPredNodes(T n) { Iterator<T> orig = (original.containsNode(n)? original.getPredNodes(n): EmptyIterator.<T>instance()); return new CompoundIterator<>(orig, nodes(n, inEdges)); }
@Override public Iterator<T> getPredNodes(T n) { Iterator<T> orig = (original.containsNode(n)? original.getPredNodes(n): EmptyIterator.<T>instance()); return new CompoundIterator<>(orig, nodes(n, inEdges)); }
@Override public Iterator<AbstractStatement> getStatements() { Iterator<AbstractStatement> it = IteratorUtil.filter(delegateGraph.iterator(), AbstractStatement.class); return new CompoundIterator<>(it, new GlobalImplicitIterator()); }
@Override public Iterator<T> getSuccNodes(T n) { Iterator<T> orig = (original.containsNode(n)? original.getSuccNodes(n): EmptyIterator.<T>instance()); return new CompoundIterator<>(orig, nodes(n, outEdges)); }
@Override public Iterator<AbstractStatement> getStatements() { Iterator<AbstractStatement> it = IteratorUtil.filter(delegateGraph.iterator(), AbstractStatement.class); return new CompoundIterator<>(it, new GlobalImplicitIterator()); }
@Override public Iterator<T> iterateNodes(IntSet s) { final MutableIntSet os = IntSetUtil.make(); final MutableIntSet es = IntSetUtil.make(); s.foreach(x -> { if (x <= original.getMaxNumber()) { os.add(x); } else { es.add(x - original.getMaxNumber() - 1); } }); return new CompoundIterator<>(original.iterateNodes(os), additionalNodes.iterateNodes(es)); }
@Override public Iterator<T> iterateNodes(IntSet s) { final MutableIntSet os = IntSetUtil.make(); final MutableIntSet es = IntSetUtil.make(); s.foreach(x -> { if (x <= original.getMaxNumber()) { os.add(x); } else { es.add(x - original.getMaxNumber() - 1); } }); return new CompoundIterator<>(original.iterateNodes(os), additionalNodes.iterateNodes(es)); }
@Override public Iterator<T> iterateNodes(IntSet s) { final MutableIntSet os = IntSetUtil.make(); final MutableIntSet es = IntSetUtil.make(); s.foreach(x -> { if (x <= original.getMaxNumber()) { os.add(x); } else { es.add(x - original.getMaxNumber() - 1); } }); return new CompoundIterator<>(original.iterateNodes(os), additionalNodes.iterateNodes(es)); }