package org.jboss.jbossts.xts.servicetests.service.participant;
import com.arjuna.wst.*;
import java.util.List;
import java.util.ArrayList;
import java.io.Serializable;
/**
* A scriptable participant completion participant for use by the XTSServiceTest service.
*/
public class ParticipantCompletionTestParticipant
extends ScriptedTestParticipant
implements BusinessAgreementWithParticipantCompletionParticipant, Serializable
{
// constructor for recovery only
protected ParticipantCompletionTestParticipant()
{
}
public ParticipantCompletionTestParticipant(String id)
{
super(id);
}
public void addCommand(String command)
{
commands.add(command);
}
public void close() throws WrongStateException, SystemException {
for (String s : commands) {
if (s.equals("close")) {
commands.remove(s);
return;
} else if (s.equals("closeWrongStateException")) {
commands.remove(s);
throw new WrongStateException("ParticipantCompletionTestParticipant close : " + id);
} else if (s.equals("closeSystemException")) {
commands.remove(s);
throw new SystemException("ParticipantCompletionTestParticipant close : " + id);
}
}
// default behaviour is just to complete
return;
}
public void cancel() throws FaultedException, WrongStateException, SystemException {
for (String s : commands) {
if (s.equals("cancel")) {
commands.remove(s);
return;
} else if (s.equals("cancelFaultedException")) {
commands.remove(s);
throw new FaultedException("ParticipantCompletionTestParticipant cancel : " + id);
} else if (s.equals("cancelWrongStateException")) {
commands.remove(s);
throw new WrongStateException("ParticipantCompletionTestParticipant cancel : " + id);
} else if (s.equals("cancelSystemException")) {
commands.remove(s);
throw new SystemException("ParticipantCompletionTestParticipant cancel : " + id);
}
}
// default behaviour is just to complete
return;
}
public void compensate() throws FaultedException, WrongStateException, SystemException {
for (String s : commands) {
if (s.equals("compensate")) {
commands.remove(s);
return;
} else if (s.equals("compensateFaultedException")) {
commands.remove(s);
throw new FaultedException("ParticipantCompletionTestParticipant compensate : " + id);
} else if (s.equals("compensateWrongStateException")) {
commands.remove(s);
throw new WrongStateException("ParticipantCompletionTestParticipant compensate : " + id);
} else if (s.equals("compensateSystemException")) {
commands.remove(s);
throw new SystemException("ParticipantCompletionTestParticipant compensate : " + id);
}
}
// default behaviour is just to complete
return;
}
public String status() throws SystemException {
return null;
}
public void unknown() throws SystemException {
// do nothing for now
}
public void error() throws SystemException {
// do nothing for now
}
}