package javax.enterprise.deploy.spi.status;
import java.util.EventObject;
import java.io.ObjectStreamField;
import java.io.ObjectOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import javax.enterprise.deploy.spi.TargetModuleID;
import org.jboss.util.id.SerialVersion;
public class ProgressEvent extends EventObject
{
static final long serialVersionUID;
private static final ObjectStreamField[] serialPersistentFields;
private static final int STATUS_IDX = 0;
private static final int MODULE_ID_IDX = 1;
static
{
if (SerialVersion.version == SerialVersion.LEGACY)
{
serialVersionUID = 3097551795061550569L;
serialPersistentFields = new ObjectStreamField[] {
new ObjectStreamField("status", DeploymentStatus.class),
new ObjectStreamField("moduleID", TargetModuleID.class)
};
}
else
{
serialVersionUID = 7815118532096485937L;
serialPersistentFields = new ObjectStreamField[] {
new ObjectStreamField("statuscode", DeploymentStatus.class),
new ObjectStreamField("targetModuleID", TargetModuleID.class)
};
}
}
private DeploymentStatus status;
private TargetModuleID moduleID;
public ProgressEvent(Object source, TargetModuleID moduleID, DeploymentStatus status)
{
super(source);
this.status = status;
this.moduleID = moduleID;
}
public TargetModuleID getTargetModuleID()
{
return moduleID;
}
public DeploymentStatus getDeploymentStatus()
{
return status;
}
private void readObject(ObjectInputStream ois)
throws ClassNotFoundException, IOException
{
ObjectInputStream.GetField fields = ois.readFields();
String name = serialPersistentFields[STATUS_IDX].getName();
this.status = (DeploymentStatus) fields.get(name, null);
name = serialPersistentFields[MODULE_ID_IDX].getName();
this.moduleID = (TargetModuleID) fields.get(name, null);
}
private void writeObject(ObjectOutputStream oos)
throws IOException
{
ObjectOutputStream.PutField fields = oos.putFields();
String name = serialPersistentFields[STATUS_IDX].getName();
fields.put(name, status);
name = serialPersistentFields[MODULE_ID_IDX].getName();
fields.put(name, moduleID);
oos.writeFields();
}
}