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.javatemplate;
16:
17: /** This interface represents context passed to the template processor method
18: * It is a store of dynamic values to be merged with template. Value stored in context can be of any type.
19: * The context is able to work with context paths specified in two different ways.
20: * <UL>
21: * <LI><U>Java naming url</U> The distinguishing feature of this form of context path is that
22: * it has ":/" token somewhere inside (e.g. http:/www.metaboss.com). If Java naming url
23: * is passed to the context - it will delegate actual lookup to the Java Naming And Directory
24: * Interface (JNDI)</LI>
25: * <LI><U>Internal map path</U> The distinguishing feature of this form of context path is that
26: * it does not have ":/" token somewhere inside. This format represents dot separated path
27: * to the value stored in the Map hierarchy (e.g. "Buffer.Size"). The Map hierarchy could be thought of as recursive map
28: * of maps. If the path has one or more dots inside - all parts of the name
29: * except the last one are considered to be the names of the submap. For example the name
30: * 'Color' refers to the value containing some sort of color related information
31: * and stored at the top level in the context with the key = 'Color'. The name 'Buffer.Size' refers to the value
32: * stored with the key = 'Size' in the Map, which itself is stored with the key = 'Buffer' in the top level
33: * of the context.</LI>
34: * <UL> */
35: public interface JavaTemplateContext {
36: /** Returns string with specified path name or supplied default string, if
37: * string with this name is not found in context. This method will basically
38: * find an object in exact same way as getObject() does and than return toString() from it.
39: * @param pContextPath the path to the string we are looking for
40: * @param pDefaultString the string to return if string has not been found in context
41: * @exception JavaTemplateException thrown when any technical problems have occured during the lookup. */
42: public String getString(String pContextPath, String pDefaultString)
43: throws JavaTemplateException;
44:
45: /** Returns string with specified path name. If string not found
46: * it throws JavaTemplateException with an appropriate message.
47: * This method will basically find an object in exact same way as getMandatoryObject() does and
48: * than return toString() from it.
49: * @param pContextPath the path to the string we are looking for
50: * @exception JavaTemplateException thrown when mandatory string has not been found or any
51: * technical problems have occured during the lookup. */
52: public String getMandatoryString(String pContextPath)
53: throws JavaTemplateException;
54:
55: /** Returns object with specified path name or supplied default object, if
56: * object with this name is not found in context.
57: * @param pContextPath the path to the object we are looking for
58: * @param pDefaultObject the object to return if object has not been found in context
59: * @exception JavaTemplateException thrown when any technical problems have occured during the lookup. */
60: public Object getObject(String pContextPath, Object pDefaultObject)
61: throws JavaTemplateException;
62:
63: /** Returns object with specified path name. If object not found
64: * it throws JavaTemplateException with an appropriate message.
65: * @param pContextPath the path to the string we are looking for
66: * @exception JavaTemplateException thrown when mandatory object has not been found or any
67: * technical problems have occured during the lookup. */
68: public Object getMandatoryObject(String pContextPath)
69: throws JavaTemplateException;
70: }
|