package org.fugazi.qls.ast.stylesheet.stylesheet_data.visitor; import org.fugazi.qls.ast.question.QLSQuestion; import org.fugazi.qls.ast.stylesheet.StyleSheet; import org.fugazi.qls.ast.widget.AbstractQLSWidget; import java.util.ArrayList; import java.util.List; public class QuestionsVisitor extends FullQLSFormVisitor { private StyleSheet sheet; private List<QLSQuestion> questions; public QuestionsVisitor(StyleSheet _sheet) { super(); this.sheet = _sheet; } /** * ======================= * Visitor methods * ======================= */ @Override public Void visitQuestion(QLSQuestion _question){ AbstractQLSWidget widget = _question.getWidget(); widget.accept(this); this.saveQuestion(_question); return null; } /** * ======================= * Private data handling functions * ======================= */ private void saveQuestion(QLSQuestion _question) { this.questions.add(_question); } /** * ======================= * Exposed methods * ======================= */ public List<QLSQuestion> getQuestions() { if (this.questions == null) { this.questions = new ArrayList<>(); this.visitStyleSheet(this.sheet); } return this.questions; } }