package org.jacorb.test.bugs.bugjac149;
import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
/**
* Serialiable replacement object for Model
* Supplied by Cisco
*/
public class ModelReplacement
implements Externalizable
{
private String repName;
private long state;
public static final String SUFFIX = "-replacement";
/**
* Creates a new ModelReplacement object.
*/
public ModelReplacement()
{
}
/**
* Creates a new ModelReplacement object.
*/
public ModelReplacement(Model m)
{
repName = m.getName() + SUFFIX;
state = m.getState();
}
/**
* name accessor
*/
public String getName()
{
return repName;
}
/**
* (transient) state accessor
*/
public long getState()
{
return state;
}
/**
* Externalizable.writeExternal() impl
*
* @param oos +
*
* @throws IOException +
*/
public void writeExternal(ObjectOutput oos)
throws IOException
{
oos.writeObject(repName);
oos.writeLong(state);
}
/**
* Externalizable.readExternal() impl
*
* @param ois +
*
* @throws IOException +
* @throws ClassNotFoundException +
*/
public void readExternal(ObjectInput ois)
throws IOException, ClassNotFoundException
{
repName = (String) ois.readObject();
state = ois.readLong();
}
/**
* readResolve() method
*/
public Object readResolve()
{
Model resolvedModel = null;
String name = getName();
name = name.substring(0, name.length() -
ModelReplacement.SUFFIX.length());
resolvedModel = new Model(name);
return resolvedModel;
}
/**
* string repr
*/
public String toString()
{
return "model replacement: " + getName() + " [" + state + "]";
}
}