package org.jboss.deployment.spi.status;
import javax.enterprise.deploy.shared.StateType;
import javax.enterprise.deploy.spi.TargetModuleID;
import javax.enterprise.deploy.spi.exceptions.OperationUnsupportedException;
import javax.enterprise.deploy.spi.status.ClientConfiguration;
import javax.enterprise.deploy.spi.status.DeploymentStatus;
import javax.enterprise.deploy.spi.status.ProgressEvent;
import javax.enterprise.deploy.spi.status.ProgressListener;
import javax.enterprise.deploy.spi.status.ProgressObject;
import java.util.ArrayList;
import java.util.List;
public class ProgressObjectImpl implements ProgressObject
{
private List listeners = new ArrayList();
private DeploymentStatusImpl deploymentStatus;
private TargetModuleID[] targetModules;
public ProgressObjectImpl(DeploymentStatus deploymentStatus, TargetModuleID[] targetModules)
{
this.deploymentStatus = (DeploymentStatusImpl)deploymentStatus;
this.targetModules = targetModules;
}
public void sendProgressEvent(StateType stateType, String message, TargetModuleID moduleID)
{
deploymentStatus.setStateType(stateType);
deploymentStatus.setMessage(message);
ProgressEvent progressEvent = new ProgressEvent(this, moduleID, deploymentStatus);
for (int i = 0; i < listeners.size(); i++)
{
ProgressListener progressListener = (ProgressListener)listeners.get(i);
progressListener.handleProgressEvent(progressEvent);
}
}
public DeploymentStatus getDeploymentStatus()
{
return deploymentStatus;
}
public TargetModuleID[] getResultTargetModuleIDs()
{
return targetModules;
}
public ClientConfiguration getClientConfiguration(TargetModuleID id)
{
return null; }
public boolean isCancelSupported()
{
return false;
}
public void cancel() throws OperationUnsupportedException
{
throw new OperationUnsupportedException("cancel not supported");
}
public boolean isStopSupported()
{
return false;
}
public void stop() throws OperationUnsupportedException
{
throw new OperationUnsupportedException("stop not supported");
}
public void addProgressListener(ProgressListener listener)
{
listeners.add(listener);
}
public void removeProgressListener(ProgressListener listener)
{
listeners.remove(listener);
}
}