KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > opencms > util > I_CmsMacroResolver


1 /*
2  * File : $Source: /usr/local/cvs/opencms/src/org/opencms/util/I_CmsMacroResolver.java,v $
3  * Date : $Date: 2006/09/22 15:17:03 $
4  * Version: $Revision: 1.8 $
5  *
6  * This library is part of OpenCms -
7  * the Open Source Content Mananagement System
8  *
9  * Copyright (c) 2005 Alkacon Software GmbH (http://www.alkacon.com)
10  *
11  * This library is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU Lesser General Public
13  * License as published by the Free Software Foundation; either
14  * version 2.1 of the License, or (at your option) any later version.
15  *
16  * This library is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19  * Lesser General Public License for more details.
20  *
21  * For further information about Alkacon Software GmbH, please see the
22  * company website: http://www.alkacon.com
23  *
24  * For further information about OpenCms, please see the
25  * project website: http://www.opencms.org
26  *
27  * You should have received a copy of the GNU Lesser General Public
28  * License along with this library; if not, write to the Free Software
29  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
30  */

31
32 package org.opencms.util;
33
34 /**
35  * Describes a macro mapper, which is used to efficiently resolve macros
36  * in the form of <code>${key}</code> in an input String.<p>
37  *
38  * The macro replacement is pre-implemented in
39  * <code>{@link org.opencms.util.CmsMacroResolver#resolveMacros(String, I_CmsMacroResolver)}</code>.<p>
40  *
41  * @author Alexander Kandzior
42  *
43  * @version $Revision: 1.8 $
44  *
45  * @since 6.0.0
46  */

47 public interface I_CmsMacroResolver {
48
49     /** Delimiter char <code>'$'</code> for a macro - old style. */
50     char MACRO_DELIMITER = '$';
51
52     /** Delimiter char <code>'%'</code> for a macro - new style. */
53     char MACRO_DELIMITER_NEW = '%';
54
55     /** End char <code>'}'</code> for a macro - old style. */
56     char MACRO_END = '}';
57
58     /** End char <code>')'</code> for a macro - new style. */
59     char MACRO_END_NEW = ')';
60
61     /** Start char <code>'{'</code> for a macro - old style. */
62     char MACRO_START = '{';
63
64     /** Start char <code>'('</code> for a macro - new style. */
65     char MACRO_START_NEW = '(';
66
67     /**
68      * Resolves a single macro to the macro value, returns <code>null</code> if the macro could not be resolved.<p>
69      *
70      * @param macro the macro to resolve
71      * @return the resolved macro or <code>null</code> if the macro could not be resolved
72      */

73     String JavaDoc getMacroValue(String JavaDoc macro);
74
75     /**
76      * Returns <code>true</code> if macros that could not be resolved are kept "as is" in the
77      * input String, <code>false</code> if they are replaced by an empty String.<p>
78      *
79      * @return <code>true</code> if macros that could not be resolved are kept "as is" in the
80      * input String, <code>false</code> if they are replaced by an empty String
81      */

82     boolean isKeepEmptyMacros();
83
84     /**
85      * Resolves all macros in the input, replacing them with the macro values.<p>
86      *
87      * The flag {@link #isKeepEmptyMacros()} controls how to deal with
88      * macros found in the input that can not be resolved.
89      *
90      * @param input the input to resolve the macros in
91      *
92      * @return the input with all macros resolved
93      */

94     String JavaDoc resolveMacros(String JavaDoc input);
95 }
Popular Tags