package org.jboss.management.j2ee;
import javax.management.MBeanServer;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
public class J2EEDomain
extends J2EEManagedObject
implements J2EEDomainMBean
{
private static String domainName = null;
private List serverNames = new ArrayList();
public static String getDomainName()
{
return domainName;
}
public static ObjectName getDomainServerName(MBeanServer mbeanServer)
{
ObjectName domainServer = null;
try
{
ObjectName serverQuery = new ObjectName(domainName + ":" +
J2EEManagedObject.TYPE + "=" + J2EETypeConstants.J2EEServer + "," + "*");
Set servers = mbeanServer.queryNames(serverQuery, null);
if (servers.isEmpty() == false)
{
domainServer = (ObjectName) servers.iterator().next();
}
}
catch (Exception ignore)
{
}
return domainServer;
}
public J2EEDomain(String domainName)
throws MalformedObjectNameException,
InvalidParentException
{
super(domainName, J2EETypeConstants.J2EEDomain, "Manager");
J2EEDomain.domainName = domainName;
}
public String[] getservers()
{
String[] servers = new String[serverNames.size()];
serverNames.toArray(servers);
return servers;
}
public String getserver(int pIndex)
{
if (pIndex >= 0 && pIndex < serverNames.size())
{
return (String) serverNames.get(pIndex);
}
return null;
}
public void addChild(ObjectName pChild)
{
String lType = J2EEManagedObject.getType(pChild);
if (J2EETypeConstants.J2EEServer.equals(lType))
{
serverNames.add(pChild.getCanonicalName());
}
}
public void removeChild(ObjectName pChild)
{
String lType = J2EEManagedObject.getType(pChild);
if (J2EETypeConstants.J2EEServer.equals(lType))
{
serverNames.remove(pChild.getCanonicalName());
}
}
public String toString()
{
return "J2EEDomain { " + super.toString() + " } [ " +
", servers: " + serverNames +
" ]";
}
}