package org.jboss.management.j2ee;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import java.util.ArrayList;
import java.util.List;
public class J2EEServer
extends J2EEManagedObject
implements J2EEServerMBean
{
private List deployedObjectNames = new ArrayList();
private List resourceNames = new ArrayList();
private List mJVMs = new ArrayList();
private String mServerVendor = null;
private String mServerVersion = null;
public J2EEServer(String pName, ObjectName pDomain, String pServerVendor,
String pServerVersion)
throws
MalformedObjectNameException,
InvalidParentException
{
super(J2EETypeConstants.J2EEServer, pName, pDomain);
mServerVendor = pServerVendor;
mServerVersion = pServerVersion;
}
public String[] getdeployedObjects()
{
String[] deployedObjects = new String[deployedObjectNames.size()];
deployedObjectNames.toArray(deployedObjects);
return deployedObjects;
}
public String getdeployedObject(int pIndex)
{
if (pIndex >= 0 && pIndex < deployedObjectNames.size())
{
return (String) deployedObjectNames.get(pIndex);
}
return null;
}
public String[] getresources()
{
String[] resources = new String[resourceNames.size()];
resourceNames.toArray(resources);
return resources;
}
public String getresource(int pIndex)
{
if (pIndex >= 0 && pIndex < resourceNames.size())
{
return (String) resourceNames.get(pIndex);
}
return null;
}
public String[] getjavaVMs()
{
String[] jvms = new String[mJVMs.size()];
mJVMs.toArray(jvms);
return jvms;
}
public String getjavaVM(int pIndex)
{
if (pIndex >= 0 && pIndex < mJVMs.size())
{
return (String) mJVMs.get(pIndex);
}
else
{
return null;
}
}
public String getserverVendor()
{
return mServerVendor;
}
public String getserverVersion()
{
return mServerVersion;
}
public void addChild(ObjectName pChild)
{
String lType = J2EEManagedObject.getType(pChild);
if (J2EETypeConstants.J2EEApplication.equals(lType) ||
J2EETypeConstants.EJBModule.equals(lType) ||
J2EETypeConstants.ResourceAdapterModule.equals(lType) ||
J2EETypeConstants.WebModule.equals(lType) ||
J2EETypeConstants.ServiceModule.equals(lType))
{
deployedObjectNames.add(pChild.getCanonicalName());
}
else if (J2EETypeConstants.JVM.equals(lType))
{
mJVMs.add(pChild.getCanonicalName());
}
else if (J2EETypeConstants.JNDIResource.equals(lType) ||
J2EETypeConstants.JMSResource.equals(lType) ||
J2EETypeConstants.URLResource.equals(lType) ||
J2EETypeConstants.JTAResource.equals(lType) ||
J2EETypeConstants.JavaMailResource.equals(lType) ||
J2EETypeConstants.JDBCResource.equals(lType) ||
J2EETypeConstants.RMI_IIOPResource.equals(lType) ||
J2EETypeConstants.JCAResource.equals(lType))
{
resourceNames.add(pChild.getCanonicalName());
}
}
public void removeChild(ObjectName pChild)
{
String lType = J2EEManagedObject.getType(pChild);
if (J2EETypeConstants.J2EEApplication.equals(lType) ||
J2EETypeConstants.EJBModule.equals(lType) ||
J2EETypeConstants.ResourceAdapterModule.equals(lType) ||
J2EETypeConstants.WebModule.equals(lType) ||
J2EETypeConstants.ServiceModule.equals(lType))
{
deployedObjectNames.remove(pChild.getCanonicalName());
}
else if (J2EETypeConstants.JVM.equals(lType))
{
mJVMs.remove(pChild.getCanonicalName());
}
else if (J2EETypeConstants.JNDIResource.equals(lType) ||
J2EETypeConstants.JMSResource.equals(lType) ||
J2EETypeConstants.URLResource.equals(lType) ||
J2EETypeConstants.JTAResource.equals(lType) ||
J2EETypeConstants.JavaMailResource.equals(lType) ||
J2EETypeConstants.JDBCResource.equals(lType) ||
J2EETypeConstants.RMI_IIOPResource.equals(lType) ||
J2EETypeConstants.JCAResource.equals(lType))
{
resourceNames.remove(pChild.getCanonicalName());
}
}
public String toString()
{
return "J2EEServer { " + super.toString() + " } [ " +
"depoyed objects: " + deployedObjectNames +
", resources: " + resourceNames +
", JVMs: " + mJVMs +
", J2EE vendor: " + mServerVendor +
" ]";
}
}