org.apache.myfaces.view.facelets.el
Class CompositeComponentELUtils

java.lang.Object
  extended by org.apache.myfaces.view.facelets.el.CompositeComponentELUtils

public final class CompositeComponentELUtils
extends java.lang.Object

Utility class for composite components when used in EL Expressions --> #{cc}

Version:
$Revision: 965450 $ $Date: 2010-07-19 07:21:18 -0500 (Mon, 19 Jul 2010) $
Author:
Jakob Korherr (latest modification by $Author: lu4242 $)

Field Summary
static java.util.regex.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 java.util.regex.Pattern CC_EXPRESSION_REGEX
          A regular expression used to determine if cc is used in an expression String.
static java.lang.String COMPONENT_STACK
          The key under which the component stack is stored in the FacesContext.
static java.lang.String CURRENT_COMPOSITE_COMPONENT_KEY
          The key under which the current composite component is stored in the attribute map of the FacesContext.
static java.lang.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
static java.util.LinkedList<javax.faces.component.UIComponent> getComponentStack(javax.faces.context.FacesContext facesContext)
          Gets the current component stack from the FacesContext.
static javax.faces.component.UIComponent getCompositeComponentBasedOnLocation(javax.faces.context.FacesContext facesContext, javax.faces.view.Location location)
          Trys 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 boolean isCompositeComponentAttrsMethodExpression(java.lang.String expression)
          Tests if cc.attrs is used as a method expression in an expression String.
static boolean isCompositeComponentExpression(java.lang.String expression)
          Tests if the expression refers to the current composite component: #{cc}
static void removeCompositeComponentForResolver(javax.faces.context.FacesContext facesContext)
          Removes the composite component from the attribute map of the FacesContext.
static void saveCompositeComponentForResolver(javax.faces.context.FacesContext facesContext, javax.faces.view.Location location)
          Trys to get the composite component using getCompositeComponentBasedOnLocation() and saves it in an attribute on the FacesContext, which is then used by CompositeComponentImplicitObject.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

COMPONENT_STACK

public static final java.lang.String COMPONENT_STACK
The key under which the component stack is stored in the FacesContext. ATTENTION: this constant is duplicate in UIComponent.


CURRENT_COMPOSITE_COMPONENT_KEY

public static final java.lang.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 java.lang.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

CC_EXPRESSION_REGEX

public static final java.util.regex.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 java.util.regex.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 javax.faces.component.UIComponent getCompositeComponentBasedOnLocation(javax.faces.context.FacesContext facesContext,
                                                                                     javax.faces.view.Location location)
Trys 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:

getComponentStack

public static java.util.LinkedList<javax.faces.component.UIComponent> getComponentStack(javax.faces.context.FacesContext facesContext)
Gets the current component stack from the FacesContext.

Parameters:
facesContext -
Returns:

saveCompositeComponentForResolver

public static void saveCompositeComponentForResolver(javax.faces.context.FacesContext facesContext,
                                                     javax.faces.view.Location location)
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(javax.faces.context.FacesContext facesContext)
Removes the composite component from the attribute map of the FacesContext.

Parameters:
facesContext -

isCompositeComponentExpression

public static boolean isCompositeComponentExpression(java.lang.String expression)
Tests if the expression refers to the current composite component: #{cc}

Returns:

isCompositeComponentAttrsMethodExpression

public static boolean isCompositeComponentAttrsMethodExpression(java.lang.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:


Copyright © 2010 The Apache Software Foundation. All Rights Reserved.