samples/visitor/notevolutionready/src-api2.0/org/apidesign/visitor/notevolutionready/Language.java
1.1 --- a/samples/visitor/notevolutionready/src-api2.0/org/apidesign/visitor/notevolutionready/Language.java Sat Jun 14 10:32:31 2008 +0200
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,53 +0,0 @@
1.4 -package org.apidesign.visitor.notevolutionready;
1.5 -
1.6 -public final class Language {
1.7 - private Language() { }
1.8 -
1.9 - public static abstract class Expression {
1.10 - public abstract void visit(Visitor v);
1.11 - }
1.12 - public static final class Plus extends Expression {
1.13 - private final Expression first;
1.14 - private final Expression second;
1.15 -
1.16 - public Plus(Expression first, Expression second) {
1.17 - this.first = first;
1.18 - this.second = second;
1.19 - }
1.20 - public Expression getFirst() { return first; }
1.21 - public Expression getSecond() { return second; }
1.22 - @Override
1.23 - public void visit(Visitor v) { v.visitPlus(this); }
1.24 - }
1.25 - public static final class Number extends Expression {
1.26 - private final int value;
1.27 - public Number(int value) { this.value = value; }
1.28 - public int getValue() { return value; }
1.29 - @Override
1.30 - public void visit(Visitor v) { v.visitNumber(this); }
1.31 - }
1.32 - // BEGIN: visitor.notevolutionready.v2
1.33 - /** @since 2.0 */
1.34 - public static final class Minus extends Expression {
1.35 - private final Expression first;
1.36 - private final Expression second;
1.37 -
1.38 - public Minus(Expression first, Expression second) {
1.39 - this.first = first;
1.40 - this.second = second;
1.41 - }
1.42 - public Expression getFirst() { return first; }
1.43 - public Expression getSecond() { return second; }
1.44 - public void visit(Visitor v) {
1.45 - /* now what? add new method to an interface!? */
1.46 - v.visitMinus(this);
1.47 - }
1.48 - }
1.49 - // END: visitor.notevolutionready.v2
1.50 -
1.51 - public interface Visitor {
1.52 - public void visitPlus(Plus s);
1.53 - public void visitMinus(Minus s);
1.54 - public void visitNumber(Number n);
1.55 - }
1.56 -}