package javax.management.relation;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.ObjectStreamField;
import java.io.Serializable;
import java.io.StreamCorruptedException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.jboss.mx.util.Serialization;
public class RoleUnresolved
implements Serializable
{
private String roleName;
private List roleValue;
private int problemType;
private static final long serialVersionUID;
private static final ObjectStreamField[] serialPersistentFields;
static
{
switch (Serialization.version)
{
case Serialization.V1R0:
serialVersionUID = -9026457686611660144L;
serialPersistentFields = new ObjectStreamField[]
{
new ObjectStreamField("myRoleName", String.class),
new ObjectStreamField("myRoleValue", ArrayList.class),
new ObjectStreamField("myPbType", Integer.TYPE)
};
break;
default:
serialVersionUID = -48350262537070138L;
serialPersistentFields = new ObjectStreamField[]
{
new ObjectStreamField("roleName", String.class),
new ObjectStreamField("roleValue", List.class),
new ObjectStreamField("problemType", Integer.TYPE)
};
}
}
public RoleUnresolved(String roleName, List roleValue, int problemType)
throws IllegalArgumentException
{
if (roleName == null)
throw new IllegalArgumentException("Null roleName");
if (roleValue == null)
throw new IllegalArgumentException("Null roleValue");
if (RoleStatus.isRoleStatus(problemType) == false)
throw new IllegalArgumentException("Invalid problem type.");
this.roleName = roleName;
this.roleValue = new ArrayList(roleValue);
this.problemType = problemType;
}
public int getProblemType()
{
return problemType;
}
public String getRoleName()
{
return roleName;
}
public List getRoleValue()
{
return roleValue;
}
public void setProblemType(int problemType)
throws IllegalArgumentException
{
if (RoleStatus.isRoleStatus(problemType) == false)
throw new IllegalArgumentException("Invalid problem type.");
this.problemType = problemType;
}
public void setRoleName(String roleName)
throws IllegalArgumentException
{
if (roleName == null)
throw new IllegalArgumentException("Null roleName");
this.roleName = roleName;
}
public void setRoleValue(List roleValue)
{
this.roleValue = new ArrayList(roleValue);
}
public synchronized Object clone()
{
return new RoleUnresolved(roleName, roleValue, problemType);
}
public synchronized String toString()
{
StringBuffer buffer = new StringBuffer("Problem (");
buffer.append(problemType); buffer.append(") Role Name (");
buffer.append(roleName);
buffer.append(") ObjectNames (");
Iterator iterator = roleValue.iterator();
while (iterator.hasNext())
{
buffer.append(iterator.next());
if (iterator.hasNext())
buffer.append(" ");
}
buffer.append(")");
return buffer.toString();
}
private void readObject(ObjectInputStream ois)
throws IOException, ClassNotFoundException
{
switch (Serialization.version)
{
case Serialization.V1R0:
ObjectInputStream.GetField getField = ois.readFields();
roleName = (String) getField.get("myRoleName", null);
roleValue = (List) getField.get("myRoleValue", null);
problemType = getField.get("myPbType", -1);
if (problemType == -1)
throw new StreamCorruptedException("No problem type?");
break;
default:
ois.defaultReadObject();
}
}
private void writeObject(ObjectOutputStream oos)
throws IOException
{
switch (Serialization.version)
{
case Serialization.V1R0:
ObjectOutputStream.PutField putField = oos.putFields();
putField.put("myRoleName", roleName);
putField.put("myRoleValue", roleValue);
putField.put("myPbType", problemType);
oos.writeFields();
break;
default:
oos.defaultWriteObject();
}
}
}