package nl.uva.sc.encoders.qls.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.ValidationMessage;
import nl.uva.sc.encoders.ql.validation.ValidationResult;
import nl.uva.sc.encoders.qls.ast.Stylesheet;
import nl.uva.sc.encoders.qls.validation.TypeChecker;
public class StylesheetParsingResult {
private final Stylesheet stylesheet;
private final List<SyntaxError> syntaxErrors;
public StylesheetParsingResult(Stylesheet stylesheet, List<SyntaxError> syntaxErrors) {
this.stylesheet = stylesheet;
this.syntaxErrors = syntaxErrors;
}
public Stylesheet getStylesheet() {
return stylesheet;
}
public List<SyntaxError> getSyntaxErrors() {
return syntaxErrors;
}
public ValidationResult validate(Questionnaire questionnaire) {
List<ValidationMessage> validationMessages = new ArrayList<ValidationMessage>();
if (!syntaxErrors.isEmpty()) {
validationMessages.addAll(syntaxErrors);
} else {
TypeChecker typeChecker = new TypeChecker(stylesheet, questionnaire);
validationMessages.addAll(typeChecker.checkTypes());
}
return new ValidationResult(validationMessages);
}
}