FileDocCategorySizeDatePackage
EmulatedFieldsForDumping.javaAPI DocAndroid 1.5 API7698Wed May 06 22:41:04 BST 2009java.io

EmulatedFieldsForDumping

public class EmulatedFieldsForDumping extends ObjectOutputStream$PutField
An EmulatedFieldsForDumping is an object that represents a set of emulated fields for an object being dumped. It is a concrete implementation for ObjectOutputStream.PutField
see
ObjectOutputStream.PutField
see
EmulatedFieldsForLoading

Fields Summary
private EmulatedFields
emulatedFields
Constructors Summary
EmulatedFieldsForDumping(ObjectStreamClass streamClass)
Constructs a new instance of EmulatedFieldsForDumping.

param
streamClass a ObjectStreamClass, which describe the fields to be emulated (names, types, etc).

        super();
        emulatedFields = new EmulatedFields(streamClass.fields(),
                (ObjectStreamField[]) null);
    
Methods Summary
EmulatedFieldsemulatedFields()
Return the actual EmulatedFields instance used by the receiver. We have the actual work in a separate class so that the code can be shared. The receiver has to be of a subclass of PutField.

return
array of ObjectSlot the receiver represents.

        return emulatedFields;
    
public voidput(java.lang.String name, short value)
Find and set the short value of a given field named name in the receiver.

param
name A String, the name of the field to set
param
value New value for the field.

        emulatedFields.put(name, value);
    
public voidput(java.lang.String name, boolean value)
Find and set the boolean value of a given field named name in the receiver.

param
name A String, the name of the field to set
param
value New value for the field.

        emulatedFields.put(name, value);
    
public voidput(java.lang.String name, byte value)
Find and set the byte value of a given field named name in the receiver.

param
name A String, the name of the field to set
param
value New value for the field.

        emulatedFields.put(name, value);
    
public voidput(java.lang.String name, char value)
Find and set the char value of a given field named name in the receiver.

param
name A String, the name of the field to set
param
value New value for the field.

        emulatedFields.put(name, value);
    
public voidput(java.lang.String name, double value)
Find and set the double value of a given field named name in the receiver.

param
name A String, the name of the field to set
param
value New value for the field.

        emulatedFields.put(name, value);
    
public voidput(java.lang.String name, float value)
Find and set the float value of a given field named name in the receiver.

param
name A String, the name of the field to set
param
value New value for the field.

        emulatedFields.put(name, value);
    
public voidput(java.lang.String name, int value)
Find and set the int value of a given field named name in the receiver.

param
name A String, the name of the field to set
param
value New value for the field.

        emulatedFields.put(name, value);
    
public voidput(java.lang.String name, long value)
Find and set the long value of a given field named name in the receiver.

param
name A String, the name of the field to set
param
value New value for the field.

        emulatedFields.put(name, value);
    
public voidput(java.lang.String name, java.lang.Object value)
Find and set the Object value of a given field named name in the receiver.

param
name A String, the name of the field to set
param
value New value for the field.

        emulatedFields.put(name, value);
    
public voidwrite(java.io.ObjectOutput output)
Write the field values to the specified ObjectOutput.

param
output the ObjectOutput
throws
IOException If an IO exception happened when writing the field values.

        EmulatedFields.ObjectSlot[] slots = emulatedFields.slots();
        for (int i = 0; i < slots.length; i++) {
            EmulatedFields.ObjectSlot slot = slots[i];
            Object fieldValue = slot.getFieldValue();
            Class<?> type = slot.getField().getType();
            // WARNING - default values exist for each primitive type
            if (type == Integer.TYPE) {
                output.writeInt(fieldValue != null ? ((Integer) fieldValue)
                        .intValue() : 0);
            } else if (type == Byte.TYPE) {
                output.writeByte(fieldValue != null ? ((Byte) fieldValue)
                        .byteValue() : (byte) 0);
            } else if (type == Character.TYPE) {
                output.writeChar(fieldValue != null ? ((Character) fieldValue)
                        .charValue() : (char) 0);
            } else if (type == Short.TYPE) {
                output.writeShort(fieldValue != null ? ((Short) fieldValue)
                        .shortValue() : (short) 0);
            } else if (type == Boolean.TYPE) {
                output.writeBoolean(fieldValue != null ? ((Boolean) fieldValue)
                        .booleanValue() : false);
            } else if (type == Long.TYPE) {
                output.writeLong(fieldValue != null ? ((Long) fieldValue)
                        .longValue() : (long) 0);
            } else if (type == Float.TYPE) {
                output.writeFloat(fieldValue != null ? ((Float) fieldValue)
                        .floatValue() : (float) 0);
            } else if (type == Double.TYPE) {
                output.writeDouble(fieldValue != null ? ((Double) fieldValue)
                        .doubleValue() : (double) 0);
            } else {
                // Either array or Object
                output.writeObject(fieldValue);
            }
        }