1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 package org.objectledge.templating;
30
31 import java.io.Reader;
32 import java.io.Writer;
33
34 import org.objectledge.ComponentInitializationError;
35
36 /***
37 * Templating component.
38 *
39 * @author <a href="mailto:pablo@caltha.com">Pawel Potempski</a>
40 * @version $Id: Templating.java,v 1.9 2005/12/20 09:09:31 pablo Exp $
41 */
42
43 public interface Templating
44 {
45 /***
46 * Restart the templating service.
47 *
48 * @throws ComponentInitializationError if anything goes wrong.
49 * @throws VirtualMachineError if anything goes wrong.
50 * @throws ThreadDeath if anything goes wrong.
51 */
52 public void restart()
53 throws ComponentInitializationError, VirtualMachineError, ThreadDeath;
54
55 /***
56 * Create an empty {@link TemplatingContext} object.
57 *
58 * @return a Context.
59 */
60 public TemplatingContext createContext();
61
62 /***
63 * Checks if the template with a given name exists.
64 *
65 * @param name template name.
66 * @return <code>true</code> if exists.
67 */
68 public boolean templateExists(String name);
69
70 /***
71 * Get the specified template.
72 *
73 * @param name template name.
74 * @return the template.
75 * @throws TemplateNotFoundException if does not exist.
76 */
77 public Template getTemplate(String name)
78 throws TemplateNotFoundException;
79
80 /***
81 * Merge a template dynamically.
82 *
83 * @param context the templating context.
84 * @param source the reader with template source.
85 * @param target the writer to write the result.
86 * @param name the template name for logging purposes.
87 * @throws MergingException if something goes wrong.
88 */
89 public void merge(TemplatingContext context, Reader source,
90 Writer target, String name)
91 throws MergingException;
92
93 /***
94 * Merge a template.
95 *
96 * @param context the templating context.
97 * @param template the template.
98 * @param target the writer to write the result.
99 * @throws MergingException if something goes wrong.
100 */
101 public void merge(TemplatingContext context, Template template, Writer target)
102 throws MergingException;
103
104 /***
105 * Return the character encoding of the template files.
106 *
107 * @return character encoding name.
108 */
109 public String getTemplateEncoding();
110
111 /***
112 * Invalidate template in local cache.
113 *
114 * @param name the template name.
115 */
116 public void invalidateTemplate(String name);
117 }