/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package scriptbuilder.structures.events;

import java.util.ArrayList;
import scriptbuilder.structures.ELEMENT;
import scriptbuilder.structures.I_XML_Writable;
import scriptbuilder.structures.ScriptEvent;

/**
 * Data model for a facilitator evaluation event. This is an evaluation event.
 *
 * @author Bryan McGuffin
 */
public class FacilitatorEvaluationEvent extends ScriptEvent implements I_EvaluationEvent, I_XML_Writable
{

    public FacilitatorEvaluationEvent()
    {
        super(ScriptEventType.FACILITATOR_EVAL_EVENT);
    }

    public ArrayList<String> expectedAction = new ArrayList<String>();

    @Override
    public ArrayList<String> getExpectedActions()
    {
        return expectedAction;
    }

    @Override
    public void addAction(String act)
    {
        expectedAction.add(act);
    }

    @Override
    public void updateAction(int index, String act)
    {
        expectedAction.set(index, act);
    }

    @Override
    public void removeAction(int index)
    {
        expectedAction.remove(index);
    }
    
    @Override
    public String toXML()
    {
        String output = openTag(ELEMENT.FACILITATOR_EVALUATION.tag);
        for (String str : expectedAction)
        {
            output += openTag(ELEMENT.EXPECTED_ACTION.tag);
            output += str;
            output += closeTag(ELEMENT.EXPECTED_ACTION.tag);
        }
        output += closeTag(ELEMENT.FACILITATOR_EVALUATION.tag);
        
        return output;
    }

    @Override
    public String openTag(String s)
    {
        return "<" + s + ">";
    }

    @Override
    public String closeTag(String s)
    {
        return "</" + s + ">\n";
    }

    @Override
    public String emptyTag(String s)
    {
        return "<" + s + "/>\n";
    }
}
