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 }