package org.jboss.deployment.spi;
import javax.enterprise.deploy.shared.ModuleType;
import javax.enterprise.deploy.spi.Target;
import javax.enterprise.deploy.spi.TargetModuleID;
import java.util.ArrayList;
import java.util.List;
public class TargetModuleIDImpl implements TargetModuleID
{
private TargetModuleIDImpl parentModuleID;
private List childModuleIDs = new ArrayList();
private JBossTarget target;
private String moduleID;
private ModuleType moduleType;
private boolean isRunning;
public TargetModuleIDImpl(Target target, String moduleID, TargetModuleID parentModuleID, boolean isRunning)
{
this.target = (JBossTarget) target;
this.moduleID = moduleID;
this.parentModuleID = (TargetModuleIDImpl) parentModuleID;
this.isRunning = isRunning;
}
public boolean isRunning()
{
return isRunning;
}
public ModuleType getModeType()
{
if (moduleType != null)
{
return moduleType;
}
if (moduleID.endsWith(".war"))
{
moduleType = ModuleType.WAR;
}
else if (moduleID.endsWith(".ear"))
{
moduleType = ModuleType.EAR;
}
else if (moduleID.endsWith(".jar"))
{
moduleType = ModuleType.EJB;
}
else if (moduleID.endsWith(".rar"))
{
moduleType = ModuleType.RAR;
}
else
{
throw new UnsupportedOperationException("Cannot obtain module type for: " + moduleID);
}
return moduleType;
}
public Target getTarget()
{
return target;
}
public String getModuleID()
{
return moduleID;
}
public String getWebURL()
{
return null; }
public String toString()
{
return "[" + target.getHostName() + "," + moduleID + "]";
}
public TargetModuleID getParentTargetModuleID()
{
return parentModuleID;
}
public TargetModuleID[] getChildTargetModuleID()
{
TargetModuleID[] idarr = new TargetModuleID[childModuleIDs.size()];
childModuleIDs.toArray(idarr);
return idarr;
}
}