/* * 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.builder.IRArgConverter; import gw.lang.ir.builder.IRBuilderContext; import gw.lang.ir.builder.IRExpressionBuilder; import gw.lang.ir.builder.IRStatementBuilder; import gw.lang.ir.statement.IRReturnStatement; @UnstableAPI public class IRReturnStatementBuilder extends IRStatementBuilder { private IRExpressionBuilder _value; public IRReturnStatementBuilder() { } public IRReturnStatementBuilder(IRExpressionBuilder value) { _value = value; } @Override protected IRStatement buildImpl(IRBuilderContext context) { IRExpression value; if (_value == null) { value = null; } else { value = IRArgConverter.castOrConvertIfNecessary( context.currentReturnType(), _value.build( context ) ); } return new IRReturnStatement(null, value); } }