/* * Copyright 2013 Guidewire Software, Inc. */ package gw.lang.ir.statement; import gw.lang.ir.IRAbstractLoopStatement; import gw.lang.ir.IRStatement; import gw.lang.ir.IRExpression; import gw.lang.ir.expression.IRIdentifier; import gw.lang.UnstableAPI; import java.util.List; import java.util.ArrayList; @UnstableAPI public class IRForEachStatement extends IRAbstractLoopStatement { // init private List<IRStatement> _initializers = new ArrayList<IRStatement>(); // test private IRExpression _test; // increment private List<IRStatement> _incrementors = new ArrayList<IRStatement>(); // body private IRStatement _body; // identifier, if any, to null check private IRIdentifier _identifierToNullCheck; public List<IRStatement> getInitializers() { return _initializers; } public void addInitializer( IRStatement initializer ) { _initializers.add( initializer ); setParentToThis( initializer ); } public List<IRStatement> getIncrementors() { return _incrementors; } public void addIncrementor( IRStatement incrementor ) { _incrementors.add( incrementor ); setParentToThis( incrementor ); } public IRExpression getLoopTest() { return _test; } public void setLoopTest( IRExpression test ) { _test = test; setParentToThis( test ); } public IRStatement getBody() { return _body; } public void setBody( IRStatement irStatement ) { _body = irStatement; setParentToThis( irStatement ); } public boolean hasIdentifierToNullCheck() { return _identifierToNullCheck != null; } public IRIdentifier getIdentifierToNullCheck() { return _identifierToNullCheck; } public void setIdentifierToNullCheck( IRIdentifier exprToNullCheck ) { _identifierToNullCheck = exprToNullCheck; setParentToThis( exprToNullCheck ); } @Override public IRTerminalStatement getLeastSignificantTerminalStatement() { return null; } }