@Override
 public ValueContainer deserialize(SerializerInput in) throws IOException, ClassNotFoundException {
   ArrayList<ArrayList<Datum>> tuples = new ArrayList<ArrayList<Datum>>();
   int count = in.readInt();
   for (int i = 0; i < count; i++) {
     ArrayList<Datum> tuple = new ArrayList<Datum>();
     for (ColumnDefinition datumType : colsDef) {
       if (datumType.getColDataType().getDataType().equalsIgnoreCase("long")
           || datumType.getColDataType().getDataType().equalsIgnoreCase("int")
           || datumType.getColDataType().getDataType().equalsIgnoreCase("number")
           || datumType.getColDataType().getDataType().equalsIgnoreCase("integer")) {
         tuple.add(new Datum.DatumLong(in.readLong()));
       } else if (datumType.getColDataType().getDataType().equalsIgnoreCase("double")
           || datumType.getColDataType().getDataType().equalsIgnoreCase("float")
           || datumType.getColDataType().getDataType().equalsIgnoreCase("decimal")) {
         tuple.add(new Datum.DatumDouble(in.readDouble()));
       } else if (datumType.getColDataType().getDataType().equalsIgnoreCase("date")) {
         @SuppressWarnings("deprecation")
         Date date = new Date(in.readInt(), in.readInt(), in.readInt());
         tuple.add(new Datum.DatumDate(date));
       } else {
         tuple.add(new Datum.DatumString(in.readUTF()));
       }
     }
     tuples.add(tuple);
   }
   ValueContainer value = new ValueContainer(tuples);
   return value;
 }