Class CompositeComponentELUtils
- java.lang.Object
-
- org.apache.myfaces.view.facelets.el.CompositeComponentELUtils
-
public final class CompositeComponentELUtils extends Object
Utility class for composite components when used in EL Expressions --> #{cc}- Version:
- $Revision$ $Date$
- Author:
- Jakob Korherr (latest modification by $Author$)
-
-
Field Summary
Fields Modifier and Type Field Description static Pattern
CC_ATTRS_METHOD_EXPRESSION_REGEX
A regular expression used to determine if cc.attrs is used as a method expression in an expression String.static Pattern
CC_EXPRESSION_REGEX
A regular expression used to determine if cc is used in an expression String.static String
CC_FIND_COMPONENT_EXPRESSION
static String
CURRENT_COMPOSITE_COMPONENT_KEY
The key under which the current composite component is stored in the attribute map of the FacesContext.static String
LEVEL_KEY
Indicates the nesting level where the composite component was created, working as reference point to all EL expressions created in that point from Facelets engine.static String
LOCATION_KEY
The key under which the Location of the composite componente is stored in the attributes map of the component by InterfaceHandler.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static UIComponent
getCompositeComponentBasedOnLocation(FacesContext facesContext, UIComponent baseComponent, Location location)
static UIComponent
getCompositeComponentBasedOnLocation(FacesContext facesContext, Location location)
Try to find a composite component on the composite component stack and using UIComponent.getCurrentCompositeComponent() based on the location of the facelet page that generated the composite component.static UIComponent
getCompositeComponentBasedOnLocation(FacesContext facesContext, Location location, int ccLevel)
Same as getCompositeComponentBasedOnLocation(final FacesContext facesContext, final Location location), but takes into account the ccLevel to resolve the composite component.static boolean
isCompositeComponentAttrsMethodExpression(String expression)
Tests if cc.attrs is used as a method expression in an expression String.static boolean
isCompositeComponentExpression(String expression)
Tests if the expression refers to the current composite component: #{cc}static void
removeCompositeComponentForResolver(FacesContext facesContext)
Removes the composite component from the attribute map of the FacesContext.static void
saveCompositeComponentForResolver(FacesContext facesContext, Location location, int ccLevel)
Trys to get the composite component using getCompositeComponentBasedOnLocation() and saves it in an attribute on the FacesContext, which is then used by CompositeComponentImplicitObject.
-
-
-
Field Detail
-
CURRENT_COMPOSITE_COMPONENT_KEY
public static final String CURRENT_COMPOSITE_COMPONENT_KEY
The key under which the current composite component is stored in the attribute map of the FacesContext.- See Also:
- Constant Field Values
-
LOCATION_KEY
public static final String LOCATION_KEY
The key under which the Location of the composite componente is stored in the attributes map of the component by InterfaceHandler.- See Also:
- Constant Field Values
-
LEVEL_KEY
public static final String LEVEL_KEY
Indicates the nesting level where the composite component was created, working as reference point to all EL expressions created in that point from Facelets engine.- See Also:
- Constant Field Values
-
CC_EXPRESSION_REGEX
public static final Pattern CC_EXPRESSION_REGEX
A regular expression used to determine if cc is used in an expression String.
-
CC_ATTRS_METHOD_EXPRESSION_REGEX
public static final Pattern CC_ATTRS_METHOD_EXPRESSION_REGEX
A regular expression used to determine if cc.attrs is used as a method expression in an expression String. This means cc.attrs must occur, must stand before a '(', because otherwise it would be a method parameter (EL 2.2), and there must be no '.' after cc.attrs unless there is a left parenthesis before it (e.g. #{cc.attrs.method(bean.parameter)}). Explanation of the parts: - [^\\(]* - There can be any character except a '(' before cc.attrs - [^\\w\\.\\(] - There must be no word character, dot, or left parenthesis directly before cc.attrs - cc\\.attrs\\. - "cc.attrs." must occur - [^\\.]* - There must be no dot after cc.attrs to indicate a method invocation on cc.attrs - (\\(.*)? - If there is a left paranthesis after cc.attrs, a dot is allowed again
-
CC_FIND_COMPONENT_EXPRESSION
public static final String CC_FIND_COMPONENT_EXPRESSION
- See Also:
- Constant Field Values
-
-
Method Detail
-
getCompositeComponentBasedOnLocation
public static UIComponent getCompositeComponentBasedOnLocation(FacesContext facesContext, Location location)
Try to find a composite component on the composite component stack and using UIComponent.getCurrentCompositeComponent() based on the location of the facelet page that generated the composite component.- Parameters:
facesContext
-location
-- Returns:
-
getCompositeComponentBasedOnLocation
public static UIComponent getCompositeComponentBasedOnLocation(FacesContext facesContext, UIComponent baseComponent, Location location)
-
getCompositeComponentBasedOnLocation
public static UIComponent getCompositeComponentBasedOnLocation(FacesContext facesContext, Location location, int ccLevel)
Same as getCompositeComponentBasedOnLocation(final FacesContext facesContext, final Location location), but takes into account the ccLevel to resolve the composite component.- Parameters:
facesContext
-location
-ccLevel
-- Returns:
-
saveCompositeComponentForResolver
public static void saveCompositeComponentForResolver(FacesContext facesContext, Location location, int ccLevel)
Trys to get the composite component using getCompositeComponentBasedOnLocation() and saves it in an attribute on the FacesContext, which is then used by CompositeComponentImplicitObject.- Parameters:
facesContext
-location
-
-
removeCompositeComponentForResolver
public static void removeCompositeComponentForResolver(FacesContext facesContext)
Removes the composite component from the attribute map of the FacesContext.- Parameters:
facesContext
-
-
isCompositeComponentExpression
public static boolean isCompositeComponentExpression(String expression)
Tests if the expression refers to the current composite component: #{cc}- Returns:
-
isCompositeComponentAttrsMethodExpression
public static boolean isCompositeComponentAttrsMethodExpression(String expression)
Tests if cc.attrs is used as a method expression in an expression String. This means cc.attrs must occur, must stand before a '(', because otherwise it would be a method parameter (EL 2.2), and there must be no '.' after cc.attrs unless there is a left parenthesis before it (e.g. #{cc.attrs.method(bean.parameter)}).- Parameters:
expression
-- Returns:
-
-