package org.fugazi.qls.ast.stylesheet.stylesheet_data.visitor; import org.fugazi.qls.ast.IQLSASTVisitor; import org.fugazi.qls.ast.question.QLSQuestion; import org.fugazi.qls.ast.segment.Page; import org.fugazi.qls.ast.segment.Section; import org.fugazi.qls.ast.style.DefaultStyleDeclaration; import org.fugazi.qls.ast.style.style_property.Color; import org.fugazi.qls.ast.style.style_property.Font; import org.fugazi.qls.ast.style.style_property.FontSize; import org.fugazi.qls.ast.style.style_property.Width; import org.fugazi.qls.ast.stylesheet.StyleSheet; import org.fugazi.qls.ast.widget.*; import java.util.List; /* This class performs a full QLS AST Tree traversal. Class can inherit and override methods where they need to perform additional actions. */ public abstract class FullQLSFormVisitor implements IQLSASTVisitor<Void> { public Void visitStyleSheet(StyleSheet styleSheet) { List<Page> pages = styleSheet.getPages(); for (Page page : pages) { page.accept(this); } return null; } public Void visitPage(Page page) { List<Section> sections = page.getSections(); List<DefaultStyleDeclaration> defaultStyles = page.getDefaultStyleDeclarations(); for (Section section : sections) { section.accept(this); } for (DefaultStyleDeclaration declaration : defaultStyles) { declaration.accept(this); } return null; } public Void visitSection(Section section) { List<Section> subsections = section.getSections(); List<DefaultStyleDeclaration> defaultStyles = section.getDefaultStyleDeclarations(); List<QLSQuestion> questions = section.getQuestions(); for (Section subsection : subsections) { subsection.accept(this); } for (DefaultStyleDeclaration declaration : defaultStyles) { declaration.accept(this); } for (QLSQuestion question : questions) { question.accept(this); } return null; } public Void visitQuestion(QLSQuestion question) { AbstractQLSWidget widget = question.getWidget(); widget.accept(this); return null; } public Void visitDefaultStyleDeclr(DefaultStyleDeclaration styleDeclr) { return null; } public Void visitColorProperty(Color _color) { return null; } public Void visitFontProperty(Font _font) { return null; } public Void visitFontSizeProperty(FontSize _fontSize) { return null; } public Void visitWidthProperty(Width _width) { return null; } public Void visitUndefinedWidget(QLSUndefinedWidget _widget) { return null; } public Void visitCheckBox(QLSCheckBox _widget) { return null; } public Void visitTextBox(QLSTextBox _widget) { return null; } public Void visitSpinBox(QLSSpinBox _widget) { return null; } public Void visitDropDown(QLSDropdown _widget) { return null; } public Void visitRadioBtn(QLSRadioBtn _widget) { return null; } public Void visitSlider(QLSSlider _widget) { return null; } }