/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.lang.ir.builder.expression;
import gw.lang.ir.builder.IRExpressionBuilder;
import gw.lang.ir.builder.IRBuilderContext;
import gw.lang.ir.builder.IRStatementBuilder;
import gw.lang.ir.IRExpression;
import gw.lang.ir.IRElement;
import gw.lang.ir.expression.IRCompositeExpression;
import gw.lang.UnstableAPI;
import java.util.List;
import java.util.ArrayList;
@UnstableAPI
public class IRCompositeExpressionBuilder extends IRExpressionBuilder {
private List<IRStatementBuilder> _statements;
private IRExpressionBuilder _finalExpression;
public IRCompositeExpressionBuilder(List<IRStatementBuilder> statements, IRExpressionBuilder finalExpression) {
_statements = statements;
_finalExpression = finalExpression;
}
@Override
protected IRExpression buildImpl(IRBuilderContext context) {
List<IRElement> elements = new ArrayList<IRElement>();
for (IRStatementBuilder statement : _statements) {
elements.add(statement.build(context));
}
elements.add(_finalExpression.build(context));
return new IRCompositeExpression(elements);
}
}