Class 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 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
    • 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,
                                                                       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: