package edu.vserver.misconception;
/**
* An enum for all subjects for which misconceptions are collected. The main project will handle initializing the correct PerformanceData generator.
*/
public enum MisconceptionPerformanceSubject {
NONE(0),
MATH(1),
FINNISH(2);
private int id;
private MisconceptionPerformanceSubject(int dbId) {
id = dbId;
}
public MisconceptionPerformanceData getPerformanceData() {
return dataGenerator.getPerformanceData(this);
}
public MisconceptionData getMisconceptionData() {
return dataGenerator.getMisconceptionData(this);
}
public MisconceptionTypeData getMisconceptionTypeData() {
return dataGenerator.getMisconceptionTypeData(this);
}
public MisconceptionTypeData getMisconceptionTypeData(Misconception misconception) {
return dataGenerator.getMisconceptionTypeData(this, misconception);
}
public int getDbId() {
return id;
}
//statics
private static PerformanceDataGenerator dataGenerator = new StubPerformanceGenerator();
public static void setPerformanceDataGenerator(PerformanceDataGenerator generator) {
dataGenerator = generator;
}
public static MisconceptionPerformanceSubject getSubject(int id) {
for (MisconceptionPerformanceSubject s : values()) {
if (s.id == id) {
return s;
}
}
return NONE;
}
}