Untitled
unknown
plain_text
3 years ago
3.2 kB
9
Indexable
package pt.ulisboa.tecnico.socialsoftware.tutor.teacherdashboard.domain;
import pt.ulisboa.tecnico.socialsoftware.tutor.execution.domain.CourseExecution;
import pt.ulisboa.tecnico.socialsoftware.tutor.impexp.domain.DomainEntity;
import pt.ulisboa.tecnico.socialsoftware.tutor.impexp.domain.Visitor;
import pt.ulisboa.tecnico.socialsoftware.tutor.teacherdashboard.domain.TeacherDashboard;
import pt.ulisboa.tecnico.socialsoftware.tutor.question.domain.Question;
import javax.persistence.*;
@Entity
public class QuestionStats implements DomainEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    private int numAvailable = 0;
    private int answeredQuestionUnique = 0;
    private float averageQuestionsAnswered = 0;
    @OneToOne
    private CourseExecution courseExecution;
    @ManyToOne
    private TeacherDashboard teacherDashboard;
    public QuestionStats() {
    }
    public QuestionStats(CourseExecution courseExecution, TeacherDashboard teacherDashboard) {
        setCourseExecution(courseExecution);
        setTeacherDashboard(teacherDashboard);
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public int getNumAvailable() {return numAvailable;}
    public void setNumAvailable() {
        numAvailable = 0;
        for (Question question : courseExecution.getCourse().getQuestions()) {
            if (question.getStatus() == Question.Status.AVAILABLE)
                numAvailable++;
        }
    }
    public int getAnsweredQuestionUnique() { return answeredQuestionUnique; }
    public void setAnsweredQuestionUnique() {
        answeredQuestionUnique = 0;
        for (Question question : courseExecution.getCourse().getQuestions()) {
            if (question.getNumberOfAnswers() != 0)
                answeredQuestionUnique++;
        }
    }
    public float getAverageQuestionsAnswered() { return averageQuestionsAnswered; }
    public void setAverageQuestionsAnswered() {
        averageQuestionsAnswered = getAnsweredQuestionUnique() / courseExecution.getNumberOfActiveStudents();
    }
    public TeacherDashboard getTeacherDashboard() {return teacherDashboard;}
    public void setTeacherDashboard(TeacherDashboard teacherDashboard) {
        this.teacherDashboard = teacherDashboard;
    }
    public CourseExecution getCourseExecution() {
        return courseExecution;
    }
    public void setCourseExecution(CourseExecution courseExecution) {
        this.courseExecution = courseExecution;
    }
    public void update(){
        this.setNumAvailable();
        this.setAnsweredQuestionUnique();
    }
    public void accept(Visitor visitor) {
        // Only used for XML generation
    }
    @Override
    public String toString() {
        return "Dashboard{" +
                "numAvailable=" + numAvailable +
                ", answeredQuestionUnique=" + answeredQuestionUnique +
                ", averageQuestionsAnswered=" + averageQuestionsAnswered +
                ", courseExecution=" + courseExecution +
                '}';
    }
}
Editor is loading...