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);
38 } else if (v instanceof Visitor30) {
39 ((Visitor30) v).visitPlus(this);
46 public static final class Number extends Expression {
48 private final int value;
50 public Number(int value) {
54 public int getValue() {
59 public void visit(Visitor v) {
60 if (v instanceof Visitor10) {
61 ((Visitor10) v).visitNumber(this);
62 } else if (v instanceof Visitor30) {
63 Real wrapper = new Real(getValue());
64 ((Visitor30) v).visitReal(wrapper);
70 // BEGIN: visitor.nonmonotonic.Minus3
72 public static final class Minus/*3.0*/ extends Expression {
73 private final Expression first;
74 private final Expression second;
76 public Minus(Expression first, Expression second) {
80 public Expression getFirst() { return first; }
81 public Expression getSecond() { return second; }
83 public void visit(Visitor v) {
84 if (v instanceof Visitor20) {
85 ((Visitor20)v).visitMinus(this);
86 } else if (v instanceof Visitor30) {
87 ((Visitor30)v).visitMinus(this);
93 // END: visitor.nonmonotonic.Minus3
94 // BEGIN: visitor.nonmonotonic.real
96 public static final class Real extends Expression {
97 private final double value;
98 public Real(double value) {
101 public double getValue() {
104 public void visit(Visitor v)
105 // FINISH: visitor.nonmonotonic.real
107 if (v instanceof Visitor30) {
108 ((Visitor30)v).visitReal(this);
110 v.visitUnknown(this);
116 public interface Visitor {
117 public void visitUnknown(Expression e);
119 public interface Visitor10 extends Visitor {
120 public void visitPlus(Plus s);
121 public void visitNumber(Number n);
124 public interface Visitor20 extends Visitor {
125 public void visitMinus(Minus s);
127 // BEGIN: visitor.nonmonotonic.visitor
129 public interface Visitor30 extends Visitor {
130 public void visitPlus(Plus s);
131 public void visitMinus(Minus s);
132 public void visitReal(Real r);
134 // END: visitor.nonmonotonic.visitor