public static PCRecord deserialize(DataInput in, Map<Integer, String> fromIntMap) { PCRecord ret = new PCRecord(); try { for (PCRecord.StrField fld : PCRecord.StrField.values()) { int id = in.readInt(); ret.setField(fld, fromIntMap.get(id)); } ret.setLatitude(new BigDecimal(in.readUTF())); ret.setLongitude(new BigDecimal(in.readUTF())); ret.setAccuracy(in.readShort()); } catch (Throwable e) { throw new RuntimeException(e); } return ret; }
public static void serialize(PCRecord value, Map<String, Integer> toIntMap, DataOutput out) { try { for (PCRecord.StrField fld : PCRecord.StrField.values()) { Integer id = toIntMap.get(value.getField(fld)); // if(id==null){ // System.out.println(); // } out.writeInt(id); } out.writeUTF(value.getLatitude().toPlainString()); out.writeUTF(value.getLongitude().toPlainString()); out.writeShort(value.getAccuracy()); } catch (Throwable e) { throw new RuntimeException(e); } }