package nl.uva.sc.encoders.qlsruntime.ui.handler;
import java.util.ArrayList;
import java.util.List;
import nl.uva.sc.encoders.ql.ast.Questionnaire;
import nl.uva.sc.encoders.ql.parser.ParsingResult;
import nl.uva.sc.encoders.ql.parser.QuestionnaireParsingResult;
import nl.uva.sc.encoders.ql.validation.ValidationMessage;
import nl.uva.sc.encoders.ql.validation.ValidationResult;
import nl.uva.sc.encoders.qls.parser.StylesheetParsingResult;
public class CombinedParsingResult implements ParsingResult {
private final QuestionnaireParsingResult questionnaireParsingResult;
private final StylesheetParsingResult stylesheetParsingResult;
public CombinedParsingResult(QuestionnaireParsingResult questionnaireParsingResult,
StylesheetParsingResult stylesheetParsingResult) {
this.questionnaireParsingResult = questionnaireParsingResult;
this.stylesheetParsingResult = stylesheetParsingResult;
}
public QuestionnaireParsingResult getQuestionnaireParsingResult() {
return questionnaireParsingResult;
}
public StylesheetParsingResult getStylesheetParsingResult() {
return stylesheetParsingResult;
}
public ValidationResult validate() {
ValidationResult qlValidationResult = questionnaireParsingResult.validate();
Questionnaire questionnaire = questionnaireParsingResult.getQuestionnaire();
ValidationResult qlsValidationResult = stylesheetParsingResult.validate(questionnaire);
List<ValidationMessage> validationMessages = new ArrayList<>();
validationMessages.addAll(qlValidationResult.getValidationMessages());
validationMessages.addAll(qlsValidationResult.getValidationMessages());
return new ValidationResult(validationMessages);
}
}