package com.uvigo.mhp;

// La interfaz TestElement define los metodos de los objetos involucrados en labores
// de evaluacion. Cualquier objeto que responda a esta interfaz puede integrarse en
// un examen con los objetos predefinidos, Test y Question. Por tanto, no hay limitaciones
// en cuanto a las preguntas que se pueden formular: desde preguntas tipo test hasta la
// resolucion de un puzzle.

// No se han contemplado mecanismos para limitar el tiempo disponible para las respuestas.

public interface TestElement
{
    public void checkAnswers(); // al final lanza un TestEvent
    public void reset();
    public boolean isPassed();
    public boolean isFailed();
    public int countQuestions();
    public int countCorrectAnswers();
    public int countIncorrectAnswers();
    public int getMinimumCorrectAnswers();
    public void showCorrection();
    
    public void addTestListener(TestListener c);
    public void removeTestListener(TestListener c);
    
    public TestManager getTestManager();
    public void setTestManager(TestManager c);
}
