package nl.uva.sc.encoders.qlsruntime.ui.handler;
import java.io.IOException;
import java.net.URISyntaxException;
import nl.uva.sc.encoders.ql.parser.QuestionnaireParsingResult;
import nl.uva.sc.encoders.qlruntime.ui.handler.ParseQLButtonHandler;
import nl.uva.sc.encoders.qls.parser.StylesheetParser;
import nl.uva.sc.encoders.qls.parser.StylesheetParsingResult;
public class QLSParseButtonHandler extends ParseQLButtonHandler {
private final InputFileTextCallback inputQLSFileTextCallback;
public QLSParseButtonHandler(InputFileTextCallback inputQLFileTextCallback, InputFileTextCallback inputQLSFileTextCallback,
ParseResultCallback parseResultCallback) {
super(inputQLFileTextCallback, parseResultCallback);
this.inputQLSFileTextCallback = inputQLSFileTextCallback;
}
@Override
protected void handleInternal() throws IOException, URISyntaxException {
QuestionnaireParsingResult questionnaireParsingResult = parseQLInputFile(getQlInputFilePath());
StylesheetParsingResult stylesheetParsingResult = parseQLSInputFile();
CombinedParsingResult combinedParsingResult = new CombinedParsingResult(questionnaireParsingResult, stylesheetParsingResult);
getParseResultCallback().showResult(combinedParsingResult);
}
protected StylesheetParsingResult parseQLSInputFile() throws IOException, URISyntaxException {
String inputFileText = inputQLSFileTextCallback.getInputFileText();
String absolutePath = getAbsoluteFilePath(inputFileText);
StylesheetParser stylesheetParser = new StylesheetParser();
return stylesheetParser.parse(absolutePath);
}
}