Exemplo n.º 1
0
 protected Object getReturnValue(
     Object formulaResult, int returnType, int realIndex, FormulaMetaFunction fn)
     throws KettleException {
   if (formulaResult == null) {
     return null;
   }
   Object value = null;
   switch (returnType) {
     case FormulaData.RETURN_TYPE_STRING:
       if (fn.isNeedDataConversion()) {
         value = convertDataToTargetValueMeta(realIndex, formulaResult);
       } else {
         value = formulaResult.toString();
       }
       break;
     case FormulaData.RETURN_TYPE_NUMBER:
       if (fn.isNeedDataConversion()) {
         value = convertDataToTargetValueMeta(realIndex, formulaResult);
       } else {
         value = new Double(((Number) formulaResult).doubleValue());
       }
       break;
     case FormulaData.RETURN_TYPE_INTEGER:
       if (fn.isNeedDataConversion()) {
         value = convertDataToTargetValueMeta(realIndex, formulaResult);
       } else {
         value = new Long(((Integer) formulaResult).intValue());
       }
       break;
     case FormulaData.RETURN_TYPE_LONG:
       if (fn.isNeedDataConversion()) {
         value = convertDataToTargetValueMeta(realIndex, formulaResult);
       } else {
         value = formulaResult;
       }
       break;
     case FormulaData.RETURN_TYPE_DATE:
       if (fn.isNeedDataConversion()) {
         value = convertDataToTargetValueMeta(realIndex, formulaResult);
       } else {
         value = formulaResult;
       }
       break;
     case FormulaData.RETURN_TYPE_BIGDECIMAL:
       if (fn.isNeedDataConversion()) {
         value = convertDataToTargetValueMeta(realIndex, formulaResult);
       } else {
         value = formulaResult;
       }
       break;
     case FormulaData.RETURN_TYPE_BYTE_ARRAY:
       value = formulaResult;
       break;
     case FormulaData.RETURN_TYPE_BOOLEAN:
       value = formulaResult;
       break;
   } // if none case is caught - null is returned.
   return value;
 }