Need to copy the code also to 3.0 version
authorJaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 09:58:56 +0200
changeset 1712496512220b7
parent 170 206cdfeefeec
child 172 bb543d116467
Need to copy the code also to 3.0 version
samples/visitor/11-cleanversion/src-api3.0/org/apidesign/visitor/Language.java
     1.1 --- a/samples/visitor/11-cleanversion/src-api3.0/org/apidesign/visitor/Language.java	Sat Jun 14 09:58:54 2008 +0200
     1.2 +++ b/samples/visitor/11-cleanversion/src-api3.0/org/apidesign/visitor/Language.java	Sat Jun 14 09:58:56 2008 +0200
     1.3 @@ -1,30 +1,66 @@
     1.4  package org.apidesign.visitor;
     1.5  
     1.6  public final class Language {
     1.7 -    private Language() { }
     1.8 -    
     1.9 +
    1.10 +    private Language() {
    1.11 +    }
    1.12 +
    1.13      public static abstract class Expression {
    1.14 +
    1.15 +        Expression() {
    1.16 +        }
    1.17 +
    1.18          public abstract void visit(Visitor v);
    1.19      }
    1.20 +
    1.21      public static final class Plus extends Expression {
    1.22 +
    1.23          private final Expression first;
    1.24          private final Expression second;
    1.25 -        
    1.26 +
    1.27          public Plus(Expression first, Expression second) {
    1.28              this.first = first;
    1.29              this.second = second;
    1.30          }
    1.31 -        public Expression getFirst() { return first; }
    1.32 -        public Expression getSecond() { return second; }
    1.33 +
    1.34 +        public Expression getFirst() {
    1.35 +            return first;
    1.36 +        }
    1.37 +
    1.38 +        public Expression getSecond() {
    1.39 +            return second;
    1.40 +        }
    1.41 +
    1.42          @Override
    1.43 -        public void visit(Visitor v) { v.visitPlus(this); }
    1.44 +        public void visit(Visitor v) {
    1.45 +            if (v instanceof Visitor1_0) {
    1.46 +                ((Visitor1_0) v).visitPlus(this);
    1.47 +            } else {
    1.48 +                v.visitUnknown(this);
    1.49 +            }
    1.50 +        }
    1.51      }
    1.52 +
    1.53      public static final class Number extends Expression {
    1.54 +
    1.55          private final int value;
    1.56 -        public Number(int value) { this.value = value; }
    1.57 -        public int getValue() { return value; }
    1.58 +
    1.59 +        public Number(int value) {
    1.60 +            this.value = value;
    1.61 +        }
    1.62 +
    1.63 +        public int getValue() {
    1.64 +            return value;
    1.65 +        }
    1.66 +
    1.67          @Override
    1.68 -        public void visit(Visitor v) { v.visitNumber(this); }
    1.69 +        public void visit(Visitor v) {
    1.70 +            if (v instanceof Visitor1_0) {
    1.71 +                ((Visitor1_0) v).visitNumber(this);
    1.72 +            } else {
    1.73 +                v.visitUnknown(this);
    1.74 +            }
    1.75 +        }
    1.76      }
    1.77      /** @since 2.0 */
    1.78      public static final class Minus extends Expression {