private void storeFields(final SerializableClass cloneInfo, final Object clone, final ClonerPutField fields) throws IOException { final Map<String, ReadField> map = fields.fieldMap; for (SerializableField cloneField : cloneInfo.getFields()) { final String name = cloneField.getName(); final ReadField field = map.get(name); if (cloneField.isAccessible()) switch (cloneField.getKind()) { case BOOLEAN: cloneField.setBoolean(clone, field == null ? false : field.getBoolean()); continue; case BYTE: cloneField.setByte(clone, field == null ? 0 : field.getByte()); continue; case CHAR: cloneField.setChar(clone, field == null ? 0 : field.getChar()); continue; case DOUBLE: cloneField.setDouble(clone, field == null ? 0 : field.getDouble()); continue; case FLOAT: cloneField.setFloat(clone, field == null ? 0 : field.getFloat()); continue; case INT: cloneField.setInt(clone, field == null ? 0 : field.getInt()); continue; case LONG: cloneField.setLong(clone, field == null ? 0 : field.getLong()); continue; case OBJECT: cloneField.setObject(clone, field == null ? null : field.getObject()); continue; case SHORT: cloneField.setShort(clone, field == null ? 0 : field.getShort()); continue; default: throw new IllegalStateException(); } } }
public double get(final String name, final double val) throws IOException { final ReadField field = clonerPutField.fieldMap.get(name); return field == null || field.isDefaulted() ? val : field.getDouble(); }
public Object get(final String name, final Object val) throws IOException { final ReadField field = clonerPutField.fieldMap.get(name); return field == null || field.isDefaulted() ? val : field.getObject(); } };
public short get(final String name, final short val) throws IOException { final ReadField field = clonerPutField.fieldMap.get(name); return field == null || field.isDefaulted() ? val : field.getShort(); }
public long get(final String name, final long val) throws IOException { final ReadField field = clonerPutField.fieldMap.get(name); return field == null || field.isDefaulted() ? val : field.getLong(); }
public float get(final String name, final float val) throws IOException { final ReadField field = clonerPutField.fieldMap.get(name); return field == null || field.isDefaulted() ? val : field.getFloat(); }
public byte get(final String name, final byte val) throws IOException { final ReadField field = clonerPutField.fieldMap.get(name); return field == null || field.isDefaulted() ? val : field.getByte(); }
public boolean get(final String name, final boolean val) throws IOException { final ReadField field = clonerPutField.fieldMap.get(name); return field == null || field.isDefaulted() ? val : field.getBoolean(); }
public char get(final String name, final char val) throws IOException { final ReadField field = clonerPutField.fieldMap.get(name); return field == null || field.isDefaulted() ? val : field.getChar(); }
public int get(final String name, final int val) throws IOException { final ReadField field = clonerPutField.fieldMap.get(name); return field == null || field.isDefaulted() ? val : field.getInt(); }
private void cloneFields(final ClonerPutField fields) throws IOException, ClassNotFoundException { final Map<String, SerializableField> defMap = fields.fieldDefMap; final Map<String, ReadField> map = fields.fieldMap; for (String name : defMap.keySet()) { final SerializableField field = defMap.get(name); // only clone object field if it has been serialized if (field.getKind() == Kind.OBJECT && map.get(name) != null) { map.put(name, new ObjectReadField(field, clone(map.get(name).getObject()))); continue; } } }
public boolean defaulted(final String name) throws IOException { final ReadField field = clonerPutField.fieldMap.get(name); return field == null || field.isDefaulted(); }
public long get(final String name, final long val) throws IOException { final ReadField field = find(name); return field == null || field.isDefaulted() ? val : field.getLong(); }
public float get(final String name, final float val) throws IOException { final ReadField field = find(name); return field == null || field.isDefaulted() ? val : field.getFloat(); }
public byte get(final String name, final byte val) throws IOException { final ReadField field = find(name); return field == null || field.isDefaulted() ? val : field.getByte(); }
public boolean get(final String name, final boolean val) throws IOException { final ReadField field = find(name); return field == null || field.isDefaulted() ? val : field.getBoolean(); }
public char get(final String name, final char val) throws IOException { final ReadField field = find(name); return field == null || field.isDefaulted() ? val : field.getChar(); }
public int get(final String name, final int val) throws IOException { final ReadField field = find(name); return field == null || field.isDefaulted() ? val : field.getInt(); }
public short get(final String name, final short val) throws IOException { final ReadField field = find(name); return field == null || field.isDefaulted() ? val : field.getShort(); }
public Object get(final String name, final Object val) throws IOException { final ReadField field = find(name); return field == null || field.isDefaulted() ? val : field.getObject(); } };