samples/visitor/11-cleanversion/src-api1.0/org/apidesign/visitor/Language.java
changeset 170 206cdfeefeec
parent 169 3be14291c9f8
child 266 47d5f1fe0b03
     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      }