@Override protected Object readObject(ObjectInput in) throws IOException, ClassNotFoundException { int code = in.readByte(); if (code == DataTypeManagerService.DefaultDataTypes.BOOLEAN.ordinal()) { if (in.readByte() == (byte) 0) { return Boolean.FALSE; } return Boolean.TRUE; } if (code != DataTypeManagerService.DefaultDataTypes.OBJECT.ordinal()) { DefaultDataTypes dataType = DataTypeManagerService.DefaultDataTypes.valueOf(getTeiidVersion(), code); ColumnSerializer s = getSerializer(dataType.getId(), (byte) 1); return s.readObject(in); } return super.readObject(in); }
@Override protected void writeObject(ObjectOutput out, Object obj) throws IOException { DefaultDataTypes dataType = getDataTypeManager().getDataType(obj.getClass()); int code = dataType.ordinal(); out.writeByte((byte) code); if (code == DataTypeManagerService.DefaultDataTypes.BOOLEAN.ordinal()) { if (Boolean.TRUE.equals(obj)) { out.write((byte) 1); } else { out.write((byte) 0); } } else if (code <= highestKnownCode && code != DataTypeManagerService.DefaultDataTypes.OBJECT.ordinal()) { dataType = DataTypeManagerService.DefaultDataTypes.valueOf(getTeiidVersion(), code); ColumnSerializer s = getSerializer(dataType.getId(), (byte) 1); s.writeObject(out, obj); } else { super.writeObject(out, obj); } }