package won.bot.impl;
import won.bot.framework.eventbot.listener.baStateBots.BATestBotScript;
import won.bot.framework.eventbot.listener.baStateBots.baCCMessagingBots.coordinationMessageAsTextBots.*;
import won.bot.framework.eventbot.listener.baStateBots.baCCMessagingBots.coordinationMessageAsUriBots.*;
import won.protocol.model.FacetType;
import java.util.ArrayList;
import java.util.List;
/**
* Created with IntelliJ IDEA.
* User: Danijel
* Date: 26.2.14.
* Time: 15.15
* To change this template use File | Settings | File Templates.
*/
public class BACCBot extends BABaseBot {
@Override
protected FacetType getParticipantFacetType() {
return FacetType.BACCParticipantFacet;
}
@Override
protected FacetType getCoordinatorFacetType() {
return FacetType.BACCCoordinatorFacet;
}
@Override
protected List<BATestBotScript> getScripts() {
//add a listener that auto-responds to messages by a message
//after NO_OF_MESSAGES messages, it unsubscribes from all events
//subscribe it to:
// * message events - so it responds
// * open events - so it initiates the chain reaction of responses
List<BATestBotScript> scripts = new ArrayList<BATestBotScript>(28);
//Coordination message is sent as TEXT
scripts.add(new BACCStateExitBot());
scripts.add(new BACCStateCompensateBot());
scripts.add(new BACCStateCompleteBot());
scripts.add(new BACCStateCompensateFailBot());
scripts.add(new BACCStateCompleteFailBot());
scripts.add(new BACCStateCompleteCancelBot());
scripts.add(new BACCStateCompleteCancelFailBot());
scripts.add(new BACCStateActiveCancelBot());
scripts.add(new BACCStateActiveCancelFailBot());
scripts.add(new BACCStateCompleteExitBot());
scripts.add(new BACCStateActiveCannotCompleteBot());
scripts.add(new BACCStateActiveFailBot());
scripts.add(new BACCStateCompleteCannotCompleteBot());
//Coordination message is sent as MODEL
scripts.add(new BACCStateExitUriBot());
scripts.add(new BACCStateCompensateUriBot());
scripts.add(new BACCStateCompleteUriBot());
scripts.add(new BACCStateCompensateFailUriBot());
scripts.add(new BACCStateCompleteFailUriBot());
scripts.add(new BACCStateCompleteCancelUriBot());
scripts.add(new BACCStateCompleteCancelFailUriBot());
scripts.add(new BACCStateActiveCancelUriBot());
scripts.add(new BACCStateActiveCancelFailUriBot());
scripts.add(new BACCStateCompleteExitUriBot());
scripts.add(new BACCStateActiveCannotCompleteUriBot());
scripts.add(new BACCStateActiveFailUriBot());
scripts.add(new BACCStateCompleteCannotCompleteUriBot());
// with failures
// scripts.add(new BACCStateCompleteWithFailuresUriBot());
// scripts.add(new BACCStateCompleteWithFailuresBot());
return scripts;
}
}