package scriptbuilder.structures.events;

import java.util.ArrayList;

/**
 * Generic interface for an evaluation event. An evaluation event has some set
 * of expected actions.
 *
 * @author Bryan McGuffin
 */
public interface I_EvaluationEvent
{

    /**
     * Get all the expected actions stored in this event.
     * 
     * @return a list of expected actions
     */
    ArrayList<String> getExpectedActions();

    /**
     * Add a new action to the list of expected actions.
     * 
     * @param act the new expected action
     */
    void addAction(String act);

    /**
     * Update the description of an existing expected action.
     * 
     * @param index The zero-based index of the action to update.
     * @param act the new description of that action
     */
    void updateAction(int index, String act);

    /**
     * Remove an action from the list.
     * 
     * @param index the zero-based index of the action to remove
     */
    void removeAction(int index);
}
