Updating to NBMs from NetBeans 8.0.1 as some of them are required to run on JDK8
1 package org.apidesign.visitor;
3 public final class Language {
8 public static abstract class Expression {
13 public abstract void visit(Visitor v);
16 public static final class Plus extends Expression {
18 private final Expression first;
19 private final Expression second;
21 public Plus(Expression first, Expression second) {
26 public Expression getFirst() {
30 public Expression getSecond() {
35 public void visit(Visitor v) {
36 if (v instanceof Visitor10) {
37 ((Visitor10) v).visitPlus(this);
44 public static final class Number extends Expression {
46 private final int value;
48 public Number(int value) {
52 public int getValue() {
57 public void visit(Visitor v) {
58 if (v instanceof Visitor10) {
59 ((Visitor10) v).visitNumber(this);
67 public static final class Minus extends Expression {
68 private final Expression first;
69 private final Expression second;
71 public Minus(Expression first, Expression second) {
75 public Expression getFirst() { return first; }
76 public Expression getSecond() { return second; }
78 // BEGIN: visitor.cleanversion.dispatch2
79 public void visit(Visitor v) {
80 if (v instanceof Visitor20) {
81 ((Visitor20)v).visitMinus(this);
86 // END: visitor.cleanversion.dispatch2
89 // BEGIN: visitor.cleanversion.v2
90 public interface Visitor {
91 public void visitUnknown(Expression e);
93 public interface Visitor10 extends Visitor {
94 public void visitPlus(Plus s);
95 public void visitNumber(Number n);
98 public interface Visitor20 extends Visitor10 {
99 public void visitMinus(Minus s);
101 // END: visitor.cleanversion.v2