org.opencms.util
Interface I_CmsMacroResolver

All Known Implementing Classes:
CmsJspLinkMacroResolver, CmsJspTagContentInfo, CmsMacroResolver, CmsToolMacroResolver

public interface I_CmsMacroResolver

Describes a macro mapper, which is used to efficiently resolve macros in the form of %(key) or ${key} in an input String.

Starting with OpenCms 7.0, the preferred form of a macro is %(key). This is to avoid conflicts / confusion with the JSP EL, which also uses the ${key} syntax.

The macro replacement is pre-implemented in CmsMacroResolver.resolveMacros(String, I_CmsMacroResolver).

Since:
6.0.0
Version:
$Revision: 1.13 $
Author:
Alexander Kandzior

Field Summary
static char MACRO_DELIMITER
          Delimiter char '%' for a macro - new / current style.
static char MACRO_DELIMITER_OLD
          Delimiter char '$' for a macro - old style.
static char MACRO_END
          End char ')' for a macro - new / current style.
static char MACRO_END_OLD
          End char '}' for a macro - old style.
static char MACRO_START
          Start char '(' for a macro - new / current style.
static char MACRO_START_OLD
          Start char '{' for a macro - old style.
 
Method Summary
 java.lang.String getMacroValue(java.lang.String macro)
          Resolves a single macro to the macro value, returns null if the macro could not be resolved.
 boolean isKeepEmptyMacros()
          Returns true if macros that could not be resolved are kept "as is" in the input String, false if they are replaced by an empty String.
 java.lang.String resolveMacros(java.lang.String input)
          Resolves all macros in the input, replacing them with the macro values.
 

Field Detail

MACRO_DELIMITER

static final char MACRO_DELIMITER
Delimiter char '%' for a macro - new / current style.

See Also:
Constant Field Values

MACRO_DELIMITER_OLD

static final char MACRO_DELIMITER_OLD
Delimiter char '$' for a macro - old style.

See Also:
Constant Field Values

MACRO_END

static final char MACRO_END
End char ')' for a macro - new / current style.

See Also:
Constant Field Values

MACRO_END_OLD

static final char MACRO_END_OLD
End char '}' for a macro - old style.

See Also:
Constant Field Values

MACRO_START

static final char MACRO_START
Start char '(' for a macro - new / current style.

See Also:
Constant Field Values

MACRO_START_OLD

static final char MACRO_START_OLD
Start char '{' for a macro - old style.

See Also:
Constant Field Values
Method Detail

getMacroValue

java.lang.String getMacroValue(java.lang.String macro)
Resolves a single macro to the macro value, returns null if the macro could not be resolved.

Parameters:
macro - the macro to resolve
Returns:
the resolved macro or null if the macro could not be resolved

isKeepEmptyMacros

boolean isKeepEmptyMacros()
Returns true if macros that could not be resolved are kept "as is" in the input String, false if they are replaced by an empty String.

Returns:
true if macros that could not be resolved are kept "as is" in the input String, false if they are replaced by an empty String

resolveMacros

java.lang.String resolveMacros(java.lang.String input)
Resolves all macros in the input, replacing them with the macro values.

The flag isKeepEmptyMacros() controls how to deal with macros found in the input that can not be resolved.

Parameters:
input - the input to resolve the macros in
Returns:
the input with all macros resolved