/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.internal.gosu.parser.statements;
import gw.internal.gosu.parser.Statement;
import gw.lang.parser.expressions.ISynthesizedMemberAccessExpression;
import gw.lang.parser.statements.ISyntheticMemberAccessStatement;
import gw.lang.parser.statements.ITerminalStatement;
public class SyntheticMemberAccessStatement extends Statement implements ISyntheticMemberAccessStatement
{
private ISynthesizedMemberAccessExpression _expression;
public SyntheticMemberAccessStatement(ISynthesizedMemberAccessExpression expression) {
_expression = expression;
}
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 _expression.toString();
}
public ISynthesizedMemberAccessExpression getMemberAccessExpression() {
return _expression;
}
}