1 package net.trajano.twiff.renderer; 2 3 import java.util.Collections; 4 import java.util.LinkedList; 5 import java.util.List; 6 7 /*** 8 * This is the document level element. 9 * 10 * @author Archimedes Trajano 11 */ 12 public class DocumentElement implements CompositePageElement { 13 /*** 14 * List of sub-elements in this component. It it is recommended that a 15 * {@link LinkedList} is used as it would only be read in order. 16 */ 17 private final List<PageElement> subElements = new LinkedList<PageElement>(); 18 19 /*** 20 * This is a constructor used for testing. 21 */ 22 public DocumentElement() { 23 } 24 25 /*** 26 * Accepts a visitor that should visit the page data. 27 * 28 * @param visitor 29 * visitor. 30 */ 31 public void accept(final PageElementVisitor visitor) { 32 visitor.startDocument(this); 33 for (PageElement element : subElements) { 34 element.accept(visitor); 35 } 36 visitor.endDocument(this); 37 } 38 39 /*** 40 * @param element 41 */ 42 public void addElement(final PageElement element) { 43 subElements.add(element); 44 } 45 46 /*** 47 * Returns the sub-elements in the element. 48 * 49 * @return sub-elements. 50 */ 51 public List<PageElement> getElements() { 52 return Collections.unmodifiableList(subElements); 53 } 54 55 /*** 56 * @see net.trajano.twiff.renderer.PageElement#getColumnNumber() 57 */ 58 public int getColumnNumber() { 59 return -1; 60 } 61 62 /*** 63 * @see net.trajano.twiff.renderer.PageElement#getLineNumber() 64 */ 65 public int getLineNumber() { 66 return -1; 67 } 68 }