View Javadoc

1   /*
2    * Copyright 2007-2013 smartics, Kronseder & Reiner GmbH
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package de.smartics.exceptions.report.renderer;
17  
18  /**
19   * Interface to plugin different renderers into the report generation process.
20   * Different implementations may support HTML, other XML dialects or any other
21   * output format.
22   */
23  public interface RendererFactory
24  {
25  
26    // ********************************* Fields *********************************
27  
28    // --- constants ------------------------------------------------------------
29  
30    // ****************************** Initializer *******************************
31  
32    // ****************************** Inner Classes *****************************
33  
34    // ********************************* Methods ********************************
35  
36    // --- get&set --------------------------------------------------------------
37  
38    // --- business -------------------------------------------------------------
39  
40    /**
41     * Creates a text renderer.
42     * <p>
43     * If the renderer has no state, the same renderer may be handed to different
44     * clients, but the interface does not require this.
45     * </p>
46     *
47     * @return the created renderer instance.
48     */
49    TextRenderer createTextRenderer();
50  
51    /**
52     * Creates a renderer to handle see tags.
53     * <p>
54     * If the renderer has no state, the same renderer may be handed to different
55     * clients, but the interface does not require this.
56     * </p>
57     *
58     * @return the created renderer instance.
59     */
60    SeeTagRenderer createSeeTagRenderer();
61  
62    /**
63     * Creates a renderer to handle link tags.
64     * <p>
65     * If the renderer has no state, the same renderer may be handed to different
66     * clients, but the interface does not require this.
67     * </p>
68     *
69     * @return the created renderer instance.
70     */
71    LinkTagRenderer createLinkTagRenderer();
72  
73    /**
74     * Creates a renderer to handle literal tags.
75     * <p>
76     * If the renderer has no state, the same renderer may be handed to different
77     * clients, but the interface does not require this.
78     * </p>
79     *
80     * @return the created renderer instance.
81     */
82    LiteralTagRenderer createLiteralTagRenderer();
83  
84    /**
85     * Creates a renderer to handle code tags.
86     * <p>
87     * If the renderer has no state, the same renderer may be handed to different
88     * clients, but the interface does not require this.
89     * </p>
90     *
91     * @return the created renderer instance.
92     */
93    CodeTagRenderer createCodeTagRenderer();
94  
95    /**
96     * Creates a renderer to handle linkplain tags.
97     * <p>
98     * If the renderer has no state, the same renderer may be handed to different
99     * clients, but the interface does not require this.
100    * </p>
101    *
102    * @return the created renderer instance.
103    */
104   LinkPlainTagRenderer createLinkPlainTagRenderer();
105 
106   /**
107    * Creates a renderer to handle value tags.
108    * <p>
109    * If the renderer has no state, the same renderer may be handed to different
110    * clients, but the interface does not require this.
111    * </p>
112    *
113    * @return the created renderer instance.
114    */
115   ValueTagRenderer createValueTagRenderer();
116 
117   /**
118    * Creates a renderer to handle since tags.
119    * <p>
120    * If the renderer has no state, the same renderer may be handed to different
121    * clients, but the interface does not require this.
122    * </p>
123    *
124    * @return the created renderer instance.
125    */
126   SinceTagRenderer createSinceTagRenderer();
127 
128   /**
129    * Creates a renderer to handle version tags.
130    * <p>
131    * If the renderer has no state, the same renderer may be handed to different
132    * clients, but the interface does not require this.
133    * </p>
134    *
135    * @return the created renderer instance.
136    */
137   VersionTagRenderer createVersionTagRenderer();
138 
139   /**
140    * Creates the renderer for tag list starts and ends.
141    *
142    * @return the created renderer instance.
143    */
144   TagListRenderer createTagListRenderer();
145 
146   // --- object basics --------------------------------------------------------
147 
148 }