package de.ugoe.cs.autoquest.tasktrees.treeifc;

/**
 * TODO comment
 * 
 * @version $Revision: $ $Date: 21.02.2012$
 * @author 2012, last modified by $Author: patrick$
 */
public interface ITaskTreeBuilder {

    /**
     * TODO: comment
     * 
     * @param sequence
     * @param task
     */
    void addChild(ISequence parent, ITaskTreeNode child);

    /**
     * TODO: comment
     * 
     * @param parent
     * @param index
     * @param sequence
     */
    void addChild(ISequence parent, int index, ITaskTreeNode child);

    /**
     * TODO: comment
     * 
     * @param sequence
     * @param task
     */
    void addChild(ISelection parent, ITaskTreeNode child);

    /**
     * TODO: comment
     * 
     * @param iteration
     * @param newChild
     */
    void setChild(IIteration iteration, ITaskTreeNode newChild);

    /**
     * TODO: comment
     * 
     * @param parent
     * @param i
     */
    void removeChild(ISequence parent, int index);

    /**
     * TODO: comment
     * 
     * @param parent
     * @param i
     */
    void removeChild(ISelection parent, ITaskTreeNode child);

    /**
     * TODO: comment
     * 
     * @param parent
     * @param i
     */
    void setDescription(ITaskTreeNode node, String description);

}
