// If the Decision Table model has been converted from the legacy text based
 // class then all values are held in the DTCellValue's StringValue. This
 // function attempts to set the correct DTCellValue property based on
 // the DTCellValue's data type.
 private void convertDTCellValueFromString(DataType.DataTypes dataType, DTCellValue52 dcv) {
   String text = dcv.getStringValue();
   switch (dataType) {
     case BOOLEAN:
       dcv.setBooleanValue((text == null ? false : Boolean.valueOf(text)));
       break;
     case DATE:
       Date d = null;
       try {
         if (text != null) {
           if (DATE_CONVERTOR == null) {
             throw new IllegalArgumentException("DATE_CONVERTOR has not been initialised.");
           }
           d = DATE_CONVERTOR.parse(text);
         }
       } catch (IllegalArgumentException e) {
       }
       dcv.setDateValue(d);
       break;
     case NUMERIC:
       BigDecimal numericValue = null;
       try {
         if (text != null) {
           numericValue = new BigDecimal(text);
         }
       } catch (Exception e) {
       }
       dcv.setNumericValue(numericValue);
       break;
     case NUMERIC_BIGDECIMAL:
       BigDecimal bigDecimalValue = null;
       try {
         if (text != null) {
           bigDecimalValue = new BigDecimal(text);
         }
       } catch (Exception e) {
       }
       dcv.setNumericValue(bigDecimalValue);
       break;
     case NUMERIC_BIGINTEGER:
       BigInteger bigIntegerValue = null;
       try {
         if (text != null) {
           bigIntegerValue = new BigInteger(text);
         }
       } catch (Exception e) {
       }
       dcv.setNumericValue(bigIntegerValue);
       break;
     case NUMERIC_BYTE:
       Byte byteValue = null;
       try {
         if (text != null) {
           byteValue = new Byte(text);
         }
       } catch (Exception e) {
       }
       dcv.setNumericValue(byteValue);
       break;
     case NUMERIC_DOUBLE:
       Double doubleValue = null;
       try {
         if (text != null) {
           doubleValue = new Double(text);
         }
       } catch (Exception e) {
       }
       dcv.setNumericValue(doubleValue);
       break;
     case NUMERIC_FLOAT:
       Float floatValue = null;
       try {
         if (text != null) {
           floatValue = new Float(text);
         }
       } catch (Exception e) {
       }
       dcv.setNumericValue(floatValue);
       break;
     case NUMERIC_INTEGER:
       Integer integerValue = null;
       try {
         if (text != null) {
           integerValue = new Integer(text);
         }
       } catch (Exception e) {
       }
       dcv.setNumericValue(integerValue);
       break;
     case NUMERIC_LONG:
       Long longValue = null;
       try {
         if (text != null) {
           longValue = new Long(text);
         }
       } catch (Exception e) {
       }
       dcv.setNumericValue(longValue);
       break;
     case NUMERIC_SHORT:
       Short shortValue = null;
       try {
         if (text != null) {
           shortValue = new Short(text);
         }
       } catch (Exception e) {
       }
       dcv.setNumericValue(shortValue);
       break;
   }
 }