package gw.rating.flow.domain uses gw.rating.flow.util.TypeMaps class DefaultSourceArgument extends RateTableStepArgument { var _argSourceStr : String as readonly ArgumentSourceString var _calcRoutineParamName : CalcRoutineParamName as readonly CalcRoutineParamName var _isModifier : Boolean as readonly IsModifier var _valueType : String as readonly ArgumentValueType construct(argDefinition : CalcStepDefinitionArgument) { super(argDefinition) var argSrcSetCode = argDefinition.Operand.ArgumentSourceSetCode var argSrcSet = argDefinition.RateTableMatchOp.getArgumentSource(argSrcSetCode) _argSourceStr = argSrcSet.ArgumentSource _calcRoutineParamName = argSrcSet.Root _isModifier = argSrcSet.IsModifier _valueType = TypeMaps.rateTableColumnTypeToType(argDefinition.RateTableMatchOp.Params.first().ColumnType).Name } override function genRateQueryParam(pos : int) : String { var symbol = ParseUtil.getInScopeVariableKey(CalcRoutineParamName) var value : String if (IsModifier) { value = generateCodeForInScopeModifier(CalcRoutineParamName, ArgumentSourceString, ArgumentValueType) } else { value = "${symbol}" + (ArgumentSourceString.HasContent ? ".${ArgumentSourceString}" : "") } return ".withParam(${pos}, ${value})" } }