/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.lang.ir.builder.statement;
import gw.lang.UnstableAPI;
import gw.lang.ir.IRExpression;
import gw.lang.ir.IRStatement;
import gw.lang.ir.IRSymbol;
import gw.lang.ir.builder.IRArgConverter;
import gw.lang.ir.builder.IRBuilderContext;
import gw.lang.ir.builder.IRExpressionBuilder;
import gw.lang.ir.builder.IRStatementBuilder;
import gw.lang.ir.builder.IRSymbolBuilder;
import gw.lang.ir.statement.IRAssignmentStatement;
@UnstableAPI
public class IRAssignmentStatementBuilder extends IRStatementBuilder {
private IRSymbolBuilder _root;
private IRExpressionBuilder _value;
public IRAssignmentStatementBuilder(IRSymbolBuilder root, IRExpressionBuilder value) {
_root = root;
_value = value;
}
@Override
protected IRStatement buildImpl(IRBuilderContext context) {
IRSymbol root = _root.build(context);
IRExpression value = IRArgConverter.castOrConvertIfNecessary( root.getType(), _value.build( context ) );
return new IRAssignmentStatement( root, value );
}
}