01: package org.makumba.analyser.interfaces;
02:
03: import org.makumba.analyser.TagData;
04: import org.makumba.analyser.engine.JspParseData;
05:
06: /** The interface of a JSP analyzer. */
07: public interface JspAnalyzer {
08: /**
09: * Makes a status holder, which is passed to all other methods
10: *
11: * @param initStatus
12: * an initial status to be passed to the JspAnalyzer. for example, the pageContext for an
13: * example-based analyzer
14: */
15: Object makeStatusHolder(Object initStatus);
16:
17: /**
18: * Start of a body tag
19: *
20: * @param td
21: * the TagData holding the parsed data
22: * @param status
23: * the status of the parsing
24: * @see #endTag(TagData, Object)
25: */
26: void startTag(TagData td, Object status);
27:
28: /**
29: * End of a body tag, like </...>
30: *
31: * @param td
32: * the TagData holdking the parsed data
33: * @param status
34: * the status of the parsing
35: */
36: void endTag(TagData td, Object status);
37:
38: /**
39: * A simple tag, like <... />
40: *
41: * @param td
42: * the TagData holdking the parsed data
43: * @param status
44: * the status of the parsing
45: */
46: void simpleTag(TagData td, Object status);
47:
48: /**
49: * A system tag, like <%@ ...%>
50: *
51: * @param td
52: * the TagData holdking the parsed data
53: * @param status
54: * the status of the parsing
55: */
56: void systemTag(TagData td, Object status);
57:
58: /**
59: * The end of the page
60: *
61: * @param status
62: * the status of the parsing
63: * @return The result of the analysis
64: */
65: Object endPage(Object status);
66: }
|