private Object coerceDataValue(DataValue mv, DataType dataType) {
   if (dataType == null) {
     return mv.getObjectValue();
   }
   switch (dataType.ordinal()) {
     case 1:
       return null;
     case 2:
       return Boolean.valueOf(mv.getBooleanValue());
     case 3:
       return Integer.valueOf(mv.getIntegerValue());
     case 4:
       return Double.valueOf(mv.getDoubleValue());
   }
   return mv.getStringValue();
 }
 public boolean getBooleanValue() {
   return value.getBooleanValue();
 }
 public String getStringValue() {
   return value.getStringValue();
 }
 public int getIntegerValue() {
   return value.getIntegerValue();
 }
 public double getDoubleValue() {
   return value.getDoubleValue();
 }