@Override public void addVisitor(Visitor visitor) { if (visitor instanceof ReducedGraphVisitor) { super.addVisitor(visitor); visitors.add((ReducedGraphVisitor) visitor); } else { throw new IllegalArgumentException( "This visitor composition is only compatible with implementations of " + ReducedGraphVisitor.class.getSimpleName() + "."); } }