blob: d6c70d8943dd9401f773a552868b2c42e9072879 [file] [log] [blame]
package org.apache.kandula.ba;
import java.util.ArrayList;
import org.apache.kandula.Constants;
import org.apache.kandula.context.impl.BAActivityContext;
import org.apache.kandula.coordinator.Coordinator;
import org.apache.kandula.coordinator.ba.BACoordinator;
import org.apache.kandula.coordinator.ba.BAParticipantInformation;
import org.apache.kandula.faults.AbstractKandulaException;
public class MixedBusinessActivity extends BusinessActivity {
private ArrayList closeParticipantsList;
private ArrayList compensateParticipantsList;
public MixedBusinessActivity(long expires ) throws AbstractKandulaException {
closeParticipantsList = new ArrayList();
compensateParticipantsList = new ArrayList();
Coordinator coordinator = new Coordinator();
context = (BAActivityContext)coordinator.createCoordinationContext(Constants.WS_BA_ATOMIC,
expires);
}
public void addParticipantToCloseList(BAParticipantInformation participantInformation)
{
closeParticipantsList.add(participantInformation);
}
public void addParticipantToCompensateList(BAParticipantInformation participantInformation)
{
if (participantInformation!=null)
compensateParticipantsList.add(participantInformation);
}
public void addParticipantToCloseList(String participantID)
{
BAParticipantInformation participantInformation = context.getParticipant(participantID);
closeParticipantsList.add(participantInformation);
}
public void addParticipantToCompensateList(String participantID)
{
BAParticipantInformation participantInformation = context.getParticipant(participantID);
compensateParticipantsList.add(participantInformation);
}
public void finalizeActivity() throws AbstractKandulaException
{
BACoordinator coordinator = new BACoordinator();
coordinator.finalizeMixedOutcomeActivity(context,closeParticipantsList,compensateParticipantsList);
}
}