package org.nlamah.QLS.TypeChecker;
import java.util.ArrayList;
import java.util.List;
import org.nlamah.QLS.Interfaces.QLSVisitorAbstract;
import org.nlamah.QLS.Model.Abstract.QLSNode;
import org.nlamah.QLS.Model.Abstract.SectionItem;
import org.nlamah.QLS.Model.Declaration.WidgetDeclaration;
import org.nlamah.QLS.Model.StylesheetBlock.Page;
import org.nlamah.QLS.Model.StylesheetBlock.StyledQuestion;
import org.nlamah.QLS.Model.StylesheetBlock.Stylesheet;
import org.nlamah.QLS.Model.StylesheetBlock.Section;
public class StyledQuestionsCollector extends QLSVisitorAbstract
{
private List<StyledQuestion> questions;
public List<StyledQuestion> questionsForStylesheet(Stylesheet stylesheet)
{
questions = new ArrayList<StyledQuestion>();
stylesheet.accept(this);
return questions;
}
public List<StyledQuestion> questionsForSection(Section section)
{
questions = new ArrayList<StyledQuestion>();
section.accept(this);
return questions;
}
@Override
public QLSNode visit(Stylesheet stylesheet)
{
for (Page page : stylesheet.pages())
{
page.accept(this);
}
return null;
}
@Override
public QLSNode visit(Page page)
{
for (Section section : page.sections())
{
section.accept(this);
}
return null;
}
@Override
public QLSNode visit(Section section)
{
for (SectionItem sectionItem : section.sectionItems())
{
sectionItem.accept(this);
}
return null;
}
@Override
public QLSNode visit(WidgetDeclaration widgetDeclaration)
{
assert(false);
return null;
}
@Override
public QLSNode visit(StyledQuestion styledQuestion)
{
questions.add(styledQuestion);
return null;
}
}