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 {