1 package org.apache.maven.doxia.siterenderer;
2
3 /*
4 * Licensed to the Apache Software Foundation (ASF) under one
5 * or more contributor license agreements. See the NOTICE file
6 * distributed with this work for additional information
7 * regarding copyright ownership. The ASF licenses this file
8 * to you under the Apache License, Version 2.0 (the
9 * "License"); you may not use this file except in compliance
10 * with the License. You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing,
15 * software distributed under the License is distributed on an
16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17 * KIND, either express or implied. See the License for the
18 * specific language governing permissions and limitations
19 * under the License.
20 */
21
22 import java.io.File;
23 import java.util.ArrayList;
24 import java.util.Collections;
25 import java.util.List;
26 import java.util.Locale;
27 import java.util.Map;
28
29 import org.apache.maven.doxia.site.decoration.DecorationModel;
30 import org.codehaus.plexus.util.ReaderFactory;
31 import org.codehaus.plexus.util.WriterFactory;
32
33 /**
34 * Context for a site rendering.
35 *
36 * @author <a href="mailto:brett@apache.org">Brett Porter</a>
37 * @version $Id: SiteRenderingContext.java 1087124 2011-03-30 22:45:41Z hboutemy $
38 */
39 public class SiteRenderingContext
40 {
41 private String inputEncoding = ReaderFactory.UTF_8;
42
43 private String outputEncoding = WriterFactory.UTF_8;
44
45 private String templateName;
46
47 private ClassLoader templateClassLoader;
48
49 private Map<String, ?> templateProperties;
50
51 private Locale locale = Locale.getDefault();
52
53 private List<Locale> siteLocales = new ArrayList<Locale>();
54
55 private DecorationModel decoration;
56
57 private String defaultWindowTitle;
58
59 private File skinJarFile;
60
61 private boolean usingDefaultTemplate;
62
63 private List<File> siteDirectories = new ArrayList<File>();
64
65 private Map<String, String> moduleExcludes;
66
67 private List<ModuleReference> modules = new ArrayList<ModuleReference>();
68
69 private boolean validate;
70
71 /**
72 * If input documents should be validated before parsing.
73 * By default no validation is performed.
74 *
75 * @return true if validation is switched on.
76 * @since 1.1.3
77 */
78 public boolean isValidate()
79 {
80 return validate;
81 }
82
83 /**
84 * Switch on/off validation.
85 *
86 * @param validate true to switch on validation.
87 * @since 1.1.3
88 */
89 public void setValidate( boolean validate )
90 {
91 this.validate = validate;
92 }
93
94 /**
95 * <p>Getter for the field <code>templateName</code>.</p>
96 *
97 * @return a {@link java.lang.String} object.
98 */
99 public String getTemplateName()
100 {
101 return templateName;
102 }
103
104 /**
105 * <p>Getter for the field <code>templateClassLoader</code>.</p>
106 *
107 * @return a {@link java.lang.ClassLoader} object.
108 */
109 public ClassLoader getTemplateClassLoader()
110 {
111 return templateClassLoader;
112 }
113
114 /**
115 * <p>Setter for the field <code>templateClassLoader</code>.</p>
116 *
117 * @param templateClassLoader a {@link java.lang.ClassLoader} object.
118 */
119 public void setTemplateClassLoader( ClassLoader templateClassLoader )
120 {
121 this.templateClassLoader = templateClassLoader;
122 }
123
124 /**
125 * <p>Getter for the field <code>templateProperties</code>.</p>
126 *
127 * @return a {@link java.util.Map} object.
128 */
129 public Map<String, ?> getTemplateProperties()
130 {
131 return templateProperties;
132 }
133
134 /**
135 * <p>Setter for the field <code>templateProperties</code>.</p>
136 *
137 * @param templateProperties a {@link java.util.Map} object.
138 */
139 public void setTemplateProperties( Map<String, ?> templateProperties )
140 {
141 this.templateProperties = Collections.unmodifiableMap( templateProperties );
142 }
143
144 /**
145 * <p>Getter for the field <code>locale</code>.</p>
146 *
147 * @return a {@link java.util.Locale} object.
148 */
149 public Locale getLocale()
150 {
151 return locale;
152 }
153
154 /**
155 * <p>Setter for the field <code>locale</code>.</p>
156 *
157 * @param locale a {@link java.util.Locale} object.
158 */
159 public void setLocale( Locale locale )
160 {
161 this.locale = locale;
162 }
163
164 /**
165 * <p>Getter for the field <code>siteLocales</code> -
166 * a list of locales available for this site context.</p>
167 *
168 * @return a {@link java.util.List} object with {@link java.util.Locale} objects.
169 */
170 public List<Locale> getSiteLocales()
171 {
172 return siteLocales;
173 }
174
175 /**
176 * <p>Adds passed locales to the list of site locales.</p>
177 *
178 * @param locales List of {@link java.util.Locale} objects to add to the site locales list.
179 */
180 public void addSiteLocales( List<Locale> locales )
181 {
182 siteLocales.addAll( locales );
183 }
184
185 /**
186 * <p>Getter for the field <code>decoration</code>.</p>
187 *
188 * @return a {@link org.apache.maven.doxia.site.decoration.DecorationModel} object.
189 */
190 public DecorationModel getDecoration()
191 {
192 return decoration;
193 }
194
195 /**
196 * <p>Setter for the field <code>decoration</code>.</p>
197 *
198 * @param decoration a {@link org.apache.maven.doxia.site.decoration.DecorationModel} object.
199 */
200 public void setDecoration( DecorationModel decoration )
201 {
202 this.decoration = decoration;
203 }
204
205 /**
206 * <p>Setter for the field <code>defaultWindowTitle</code>.</p>
207 *
208 * @param defaultWindowTitle a {@link java.lang.String} object.
209 */
210 public void setDefaultWindowTitle( String defaultWindowTitle )
211 {
212 this.defaultWindowTitle = defaultWindowTitle;
213 }
214
215 /**
216 * <p>Getter for the field <code>defaultWindowTitle</code>.</p>
217 *
218 * @return a {@link java.lang.String} object.
219 */
220 public String getDefaultWindowTitle()
221 {
222 return defaultWindowTitle;
223 }
224
225 /**
226 * <p>Getter for the field <code>skinJarFile</code>.</p>
227 *
228 * @return a {@link java.io.File} object.
229 */
230 public File getSkinJarFile()
231 {
232 return skinJarFile;
233 }
234
235 /**
236 * <p>Setter for the field <code>skinJarFile</code>.</p>
237 *
238 * @param skinJarFile a {@link java.io.File} object.
239 */
240 public void setSkinJarFile( File skinJarFile )
241 {
242 this.skinJarFile = skinJarFile;
243 }
244
245 /**
246 * <p>Setter for the field <code>templateName</code>.</p>
247 *
248 * @param templateName a {@link java.lang.String} object.
249 */
250 public void setTemplateName( String templateName )
251 {
252 this.templateName = templateName;
253 }
254
255 /**
256 * <p>Setter for the field <code>usingDefaultTemplate</code>.</p>
257 *
258 * @param usingDefaultTemplate a boolean.
259 */
260 public void setUsingDefaultTemplate( boolean usingDefaultTemplate )
261 {
262 this.usingDefaultTemplate = usingDefaultTemplate;
263 }
264
265 /**
266 * <p>isUsingDefaultTemplate.</p>
267 *
268 * @return a boolean.
269 */
270 public boolean isUsingDefaultTemplate()
271 {
272 return usingDefaultTemplate;
273 }
274
275 /**
276 * <p>addSiteDirectory.</p>
277 *
278 * @param file a {@link java.io.File} object.
279 */
280 public void addSiteDirectory( File file )
281 {
282 this.siteDirectories.add( file );
283 }
284
285 /**
286 * Add a module source directory.
287 *
288 * @param moduleBasedir The base directory for module's source files.
289 * @param moduleParserId a {@link java.lang.String} object.
290 */
291 public void addModuleDirectory( File moduleBasedir, String moduleParserId )
292 {
293 this.modules.add( new ModuleReference( moduleParserId, moduleBasedir ) );
294 }
295
296 /**
297 * <p>Getter for the field <code>siteDirectories</code>.</p>
298 *
299 * @return List of site directories files.
300 */
301 public List<File> getSiteDirectories()
302 {
303 return siteDirectories;
304 }
305
306 /**
307 * <p>Getter for the field <code>modules</code>.</p>
308 *
309 * @return a {@link java.util.List} object.
310 */
311 public List<ModuleReference> getModules()
312 {
313 return modules;
314 }
315
316 /**
317 * <p>Getter for the field <code>moduleExcludes</code>.</p>
318 *
319 * @return a map defining exclude patterns (comma separated) by parser id.
320 */
321 public Map<String, String> getModuleExcludes()
322 {
323 return moduleExcludes;
324 }
325
326 /**
327 * <p>Setter for the field <code>moduleExcludes</code>.</p>
328 *
329 * @param moduleExcludes a {@link java.util.Map} object.
330 */
331 public void setModuleExcludes( Map<String, String> moduleExcludes )
332 {
333 this.moduleExcludes = moduleExcludes;
334 }
335
336 /**
337 * <p>Getter for the field <code>inputEncoding</code>.</p>
338 *
339 * @return a {@link java.lang.String} object.
340 */
341 public String getInputEncoding()
342 {
343 return inputEncoding;
344 }
345
346 /**
347 * <p>Setter for the field <code>inputEncoding</code>.</p>
348 *
349 * @param inputEncoding a {@link java.lang.String} object.
350 */
351 public void setInputEncoding( String inputEncoding )
352 {
353 this.inputEncoding = inputEncoding;
354 }
355
356 /**
357 * <p>Getter for the field <code>outputEncoding</code>.</p>
358 *
359 * @return a {@link java.lang.String} object.
360 */
361 public String getOutputEncoding()
362 {
363 return outputEncoding;
364 }
365
366 /**
367 * <p>Setter for the field <code>outputEncoding</code>.</p>
368 *
369 * @param outputEncoding a {@link java.lang.String} object.
370 */
371 public void setOutputEncoding( String outputEncoding )
372 {
373 this.outputEncoding = outputEncoding;
374 }
375 }