/* * Copyright 2013 Guidewire Software, Inc. */ package gw.internal.gosu.parser.statements; import gw.internal.gosu.parser.Statement; import gw.internal.gosu.parser.expressions.NewExpression; import gw.lang.parser.IExpression; import gw.lang.parser.statements.INewStatement; import gw.lang.parser.statements.ITerminalStatement; /** * Represents a method-call statement as specified in the Gosu grammar: * <pre> * <i>new-statement</i> * <new-expression>] * </pre> * <p/> * * @see gw.lang.parser.IGosuParser */ public final class NewStatement extends Statement implements INewStatement { NewExpression _newExpression; /** * @return The NewExpression corresponding to this method call statement. */ public NewExpression getNewExpression() { return _newExpression; } /** * @param newExpression The NewExpression corresponding to this method call statement. */ public void setNewExpression( NewExpression newExpression ) { _newExpression = newExpression; } public Object execute() { if( !isCompileTimeConstant() ) { return super.execute(); } throw new IllegalStateException( "Can't execute this parsed element directly" ); } @Override protected ITerminalStatement getLeastSignificantTerminalStatement_internal( boolean[] bAbsolute ) { bAbsolute[0] = false; return null; } @Override public String toString() { return _newExpression.toString(); } public int getArgPosition() { return _newExpression.getArgPosition(); } @Override public IExpression[] getArgs() { return _newExpression.getArgs(); } }