package nl.uva.sc.encoders.ql.parser;
import java.util.ArrayList;
import java.util.List;
import nl.uva.sc.encoders.ql.ast.Questionnaire;
import nl.uva.sc.encoders.ql.validation.SyntaxError;
import nl.uva.sc.encoders.ql.validation.TypeChecker;
import nl.uva.sc.encoders.ql.validation.ValidationMessage;
import nl.uva.sc.encoders.ql.validation.ValidationResult;
public class QuestionnaireParsingResult implements ParsingResult {
private final Questionnaire questionnaire;
private final List<SyntaxError> syntaxErrors;
public QuestionnaireParsingResult(Questionnaire questionnaire, List<SyntaxError> syntaxErrors) {
this.questionnaire = questionnaire;
this.syntaxErrors = syntaxErrors;
}
public Questionnaire getQuestionnaire() {
return questionnaire;
}
public List<SyntaxError> getSyntaxErrors() {
return syntaxErrors;
}
public ValidationResult validate() {
List<ValidationMessage> validationMessages = new ArrayList<ValidationMessage>();
if (!syntaxErrors.isEmpty()) {
validationMessages.addAll(syntaxErrors);
} else {
TypeChecker typeChecker = new TypeChecker(questionnaire);
validationMessages.addAll(typeChecker.checkTypes());
}
return new ValidationResult(validationMessages);
}
}