package org.jboss.system;
import java.io.Serializable;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import javax.management.ObjectName;
public class ServiceContext implements Serializable
{
private static final long serialVersionUID = 7461263042948325633L;
private static final String[] stateNames = {
"INSTALLED",
"CONFIGURED",
"CREATED",
"RUNNING",
"FAILED",
"STOPPED",
"DESTROYED",
"NOTYETINSTALLED"
};
public static final int INSTALLED = 0;
public static final int CONFIGURED = 1;
public static final int CREATED = 2;
public static final int RUNNING = 3;
public static final int FAILED = 4;
public static final int STOPPED = 5;
public static final int DESTROYED = 6;
public static final int NOTYETINSTALLED = 7;
public ObjectName objectName;
public int state = NOTYETINSTALLED;
public List iDependOn = new LinkedList();
public List dependsOnMe = new LinkedList();
public Service proxy;
public Throwable problem;
public String toString()
{
StringBuffer sbuf = new StringBuffer(512);
sbuf.append("ObjectName: ").append(objectName);
sbuf.append("\n State: ").append(stateNames[state]);
if (state == FAILED && problem != null)
{
sbuf.append("\n Reason: ").append(problem.toString());
}
printList(sbuf, "\n I Depend On:", iDependOn);
printList(sbuf, "\n Depends On Me:", dependsOnMe);
sbuf.append("\n");
return sbuf.toString();
}
private void printList(StringBuffer sbuf, String msg, List ctxs)
{
if (ctxs.size() > 0)
{
sbuf.append(msg);
for (Iterator i = ctxs.iterator(); i.hasNext(); )
{
ServiceContext sc = (ServiceContext) i.next();
sbuf.append("\n ");
sbuf.append(sc.objectName);
}
}
}
}