package org.nlamah.QLS.Model.StylesheetBlock; import java.util.List; import org.nlamah.QBase.Tools.ArrayTools; import org.nlamah.QLS.Interfaces.QLSNodeVisitor; import org.nlamah.QLS.Model.Abstract.QLSNode; import org.nlamah.QLS.Model.Abstract.StylesheetBlock; import org.nlamah.QLS.Model.Value.IdentifierValue; import org.nlamah.QLS.TypeChecker.StyledQuestionsCollector; public class Stylesheet extends StylesheetBlock { private List<Page> pages; private List<StyledQuestion> questions; public Stylesheet(IdentifierValue identifier, List<Page> pages, List<DefaultBlock> defaultBlocks) { super(identifier.toString(), defaultBlocks); this.pages = pages; for (Page page : pages) { page.setParentNode(this); } } public List<Page> pages() { return pages; } public List<StyledQuestion> questions() { if (!ArrayTools.arrayExistsAndHasElements(questions)) { questions = new StyledQuestionsCollector().questionsForStylesheet(this); } return questions; } @Override public QLSNode accept(QLSNodeVisitor visitor) { return visitor.visit(this); } @Override public boolean equals(Object object) { if (!super.equals(object)) { return false; } if (!(object instanceof Stylesheet)) { return false; } Stylesheet value = (Stylesheet) object; if (!(pages.equals(value.pages))) { return false; } return true; } }