1.1 --- a/samples/visitor/11-cleanversion/src-api1.0/org/apidesign/visitor/Language.java Sat Jun 14 09:58:52 2008 +0200
1.2 +++ b/samples/visitor/11-cleanversion/src-api1.0/org/apidesign/visitor/Language.java Sat Jun 14 09:58:54 2008 +0200
1.3 @@ -18,18 +18,33 @@
1.4 public Expression getFirst() { return first; }
1.5 public Expression getSecond() { return second; }
1.6 @Override
1.7 - public void visit(Visitor v) { v.visitPlus(this); }
1.8 + public void visit(Visitor v) {
1.9 + if (v instanceof Visitor1_0) {
1.10 + ((Visitor1_0)v).visitPlus(this);
1.11 + } else {
1.12 + v.visitUnknown(this);
1.13 + }
1.14 + }
1.15 }
1.16 public static final class Number extends Expression {
1.17 private final int value;
1.18 public Number(int value) { this.value = value; }
1.19 public int getValue() { return value; }
1.20 @Override
1.21 - public void visit(Visitor v) { v.visitNumber(this); }
1.22 + public void visit(Visitor v) {
1.23 + if (v instanceof Visitor1_0) {
1.24 + ((Visitor1_0)v).visitNumber(this);
1.25 + } else {
1.26 + v.visitUnknown(this);
1.27 + }
1.28 + }
1.29 }
1.30
1.31 public interface Visitor {
1.32 public void visitUnknown(Expression e);
1.33 + }
1.34 +
1.35 + public interface Visitor1_0 extends Visitor {
1.36 public void visitPlus(Plus s);
1.37 public void visitNumber(Number n);
1.38 }