01: // THIS SOFTWARE IS PROVIDED BY SOFTARIS PTY.LTD. AND OTHER METABOSS
02: // CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING,
03: // BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
04: // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SOFTARIS PTY.LTD.
05: // OR OTHER METABOSS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
06: // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
07: // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
08: // OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
09: // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
10: // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
11: // EVEN IF SOFTARIS PTY.LTD. OR OTHER METABOSS CONTRIBUTORS ARE ADVISED OF THE
12: // POSSIBILITY OF SUCH DAMAGE.
13: //
14: // Copyright 2000-2005 © Softaris Pty.Ltd. All Rights Reserved.
15: package com.metaboss.sdlctools.services.jdktools;
16:
17: import com.metaboss.enterprise.bs.BSException;
18:
19: /** This component provides Jamon template processing service.
20: * Jamon is an Open Source text template engine for Java.
21: * See <A href="http://www.jamon.org" target="_blank">Jamon Web Site</A> for more information on Jamon.
22: */
23: public interface BSJamonTemplateProcessor {
24: /** Naming URL of the component */
25: public static final String COMPONENT_URL = "component:/com.metaboss.sdlctools.services.jdktools.BSJamonTemplateProcessor";
26:
27: /** Merges given template with given set of properties.
28: * @param pSourceTemplate the buffer with template text in it. Note that the template source must not
29: * use <%args> construct to specify arguments. This is because the template argument specification is
30: * fixed and constructed automatically as follows:
31: * <code>
32: * <%args>
33: * com.metaboss.javatemplate.JavaTemplateContext pContext;
34: * </%args>
35: * </code>
36: * This is done to keep Jamon templates in line with other types of templates (Java and Velocity).
37: * @param pSourceTemplateName the unique name of the template - used in logging, may also be used in
38: * caching, so the caller must make sure that the same template always has exact same name. Name
39: * can be supplied with java style package separators (e.g. metaboss.generation.CodeTemplate)
40: * @param pContextMap the context map to pass to the template processor. This context map will
41: * be supplied to the Jamon template as com.metaboss.javatemplate.JavaTemplateContext pContext argument.
42: * @return MergeResult contains the result of the requested operation */
43: public MergeResult mergeTemplate(String pSourceTemplate,
44: String pSourceTemplateName, java.util.Map pContextMap)
45: throws BSException;
46: }
|