001// 002// Generated by JTB 1.3.2 003// 004 005package com.randomnoun.common.jexl.ast; 006 007/** 008 * Represents an grammar optional node, e.g. ( A )? or [ A ] 009 */ 010public class NodeOptional implements Node { 011 public NodeOptional() { 012 node = null; 013 } 014 015 public NodeOptional(Node n) { 016 addNode(n); 017 } 018 019 public void addNode(Node n) { 020 if ( node != null) // Oh oh! 021 throw new Error("Attempt to set optional node twice"); 022 023 node = n; 024 } 025 public void accept(com.randomnoun.common.jexl.visitor.Visitor v) { 026 v.visit(this); 027 } 028 public <R,A> R accept(com.randomnoun.common.jexl.visitor.GJVisitor<R,A> v, A argu) { 029 return v.visit(this,argu); 030 } 031 public <R> R accept(com.randomnoun.common.jexl.visitor.GJNoArguVisitor<R> v) { 032 return v.visit(this); 033 } 034 public <A> void accept(com.randomnoun.common.jexl.visitor.GJVoidVisitor<A> v, A argu) { 035 v.visit(this,argu); 036 } 037 public boolean present() { return node != null; } 038 039 public Node node; 040} 041