for(int i =0; i < args.length; i++){
final DataValue v = args[i].eval();
// logger.debug("DataValue {}", v);
if(Types.isNumericType(v.getDataType())){
NumericValue n = v.getAsNumeric();
NumericType nt = n.getNumericType();
// logger.debug("Numeric Type: {}", nt);
if(isFloating || nt == NumericType.FLOAT || nt == NumericType.DOUBLE){
if(!isFloating){
d = l;
isFloating = true;
}
d *= n.getAsDouble();
}else{
l *= n.getAsLong();
}
}else{
throw new RecordException(String.format("Unable to multiply a value of %s.", v), null);
}
}
NumericValue out = null;
if(isFloating){
out = new ScalarValues.DoubleScalar(d);
}else{
out = new ScalarValues.LongScalar(l);
}