@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; }