View Javadoc

1   package net.trajano.twiff.renderer;
2   
3   import java.util.List;
4   import java.util.Map;
5   
6   /***
7    * Performs operation on a page data. Implements the Visitor pattern.
8    * 
9    * @author Archimedes Trajano
10   */
11  public interface PageElementVisitor {
12      /***
13       * Visits a StringElement object.
14       * 
15       * @param pageData
16       *            page data.
17       * @param content
18       *            content.
19       * @see PageElement#accept(PageElementVisitor)
20       */
21      void visitStringPageElement(StringElement pageData, String content);
22  
23      /***
24       * Start of a simple element.
25       * 
26       * @param element
27       * @param elementName
28       * @param attributes
29       * @param subElements
30       */
31      void startSimpleElement(SimpleElement element, String elementName, Map<String, String> attributes, List<PageElement> subElements);
32  
33      /***
34       * Ends a simple element.
35       * 
36       * @param element
37       * @param elementName
38       * @param attributes
39       * @param subElements
40       */
41      void endSimpleElement(SimpleElement element, String elementName, Map<String, String> attributes, List<PageElement> subElements);
42  
43      /***
44       * Visits an element that has no body.
45       * 
46       * @param element
47       * @param elementName
48       * @param attributes
49       */
50      void visitSimpleEmptyElement(SimpleElement element, String elementName, Map<String, String> attributes);
51  
52      /***
53       * Visits a processing instruction element.
54       * 
55       * @param element
56       * @param target
57       * @param data
58       */
59      void visitProcessingInstructionElement(ProcessingInstructionElement element, String target, String data);
60  
61      /***
62       * Invoked when the document is started.
63       * 
64       * @param element
65       */
66      void startDocument(DocumentElement element);
67  
68      /***
69       * Invoked when the document ends.
70       * 
71       * @param element
72       */
73      void endDocument(DocumentElement element);
74  
75      /***
76       * @param element
77       * @param elementName
78       * @param attributes
79       */
80      void visitComponentEmptyElement(ComponentElement element, String elementName, Map<String, String> attributes);
81  
82      /***
83       * @param element
84       * @param elementName
85       * @param attributes
86       * @param subElements
87       */
88      void startComponentElement(ComponentElement element, String elementName, Map<String, String> attributes, List<PageElement> subElements);
89  
90      /***
91       * @param element
92       * @param elementName
93       * @param attributes
94       * @param subElements
95       */
96      void endComponentElement(ComponentElement element, String elementName, Map<String, String> attributes, List<PageElement> subElements);
97  }