org.apache.myfaces.trinidad.component

## Class UIXComponentBase

- java.lang.Object
- - javax.faces.component.UIComponent
  - - org.apache.myfaces.trinidad.component.UIXComponent
    - - org.apache.myfaces.trinidad.component.UIXComponentBase

- All Implemented Interfaces:
    EventListener, javax.faces.component.PartialStateHolder, javax.faces.component.StateHolder, javax.faces.component.TransientStateHolder, javax.faces.event.ComponentSystemEventListener, javax.faces.event.FacesListener, javax.faces.event.SystemEventListenerHolder
  Direct Known Subclasses:
    CoreImportScript, CoreStyleSheet, HtmlBody, HtmlCellFormat, HtmlFrame, HtmlFrameBorderLayout, HtmlHead, HtmlHtml, HtmlMeta, HtmlRowLayout, HtmlScript, HtmlTableLayout, UIXChart, UIXChoose, UIXCollection, UIXColumn, UIXCommand, UIXComponentRef, UIXDecorateCollection, UIXDocument, UIXForm, UIXGo, UIXGroup, UIXMenu, UIXMessage, UIXMessages, UIXObject, UIXPanel, UIXPoll, UIXProgress, UIXReset, UIXSelectItem, UIXSelectRange, UIXShowDetail, UIXShowMany, UIXShowOne, UIXSingleStep, UIXSubform, UIXSwitcher, UIXValue

      @JSFComponent
      public abstract class UIXComponentBase
      extends UIXComponent

  Base implementation of components for all of Trinidad. UIXComponentBase offers a number of features not supplied by the standard UIComponentBase class:
  - Use of FacesBean for better and easier state saving
  - Support of the LifecycleRenderer class for greater Renderer control over the lifecycle
  - Built-in support for both the "partialTriggers" attribute (declarative support for being a PPR target) and for triggering such components (for being a the source of a PPR-causing event).

  ### FacesBean and UIXComponentBase

  UIXComponentBase differs from UIXComponent most particularly in its use of FacesBeans to store all state. This offers a number of advantages:

  - Subclassers - if they use FacesBean for their state as well - do not need to write overrides of saveState() and restoreState().
  - State is optimized by default
  - Future optimizations - partly exposed today with markInitialState() - can offer major state saving improvements.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `UIXComponentBase.ComponentSystemEventListenerWrapper`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static PropertyKey` | `BINDING_KEY`
    `static PropertyKey` | `ID_KEY`
    `static PropertyKey` | `RENDERED_KEY`
    `static PropertyKey` | `RENDERER_TYPE_KEY`
    `static PropertyKey` | `TRANSIENT_KEY`
    `static FacesBean.Type` | `TYPE`

    - ### Fields inherited from class javax.faces.component.UIComponent

      `ATTRS_WITH_DECLARED_DEFAULT_VALUES, BEANINFO_KEY, bindings, COMPOSITE_COMPONENT_TYPE_KEY, COMPOSITE_FACET_NAME, CURRENT_COMPONENT, CURRENT_COMPOSITE_COMPONENT, FACETS_KEY, HONOR_CURRENT_COMPONENT_ATTRIBUTES_PARAM_NAME, VIEW_LOCATION_KEY`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `UIXComponentBase()`
    `UIXComponentBase(String rendererType)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static javax.el.MethodExpression` | `adaptMethodBinding(javax.faces.el.MethodBinding binding)` Given a MethodBinding, create a MethodExpression that adapts it.
    `protected void` | `addAttributeChange(String attributeName, Object attributeValue)` Convenience function for `addComponentChange(new AttributeComponentChange(attributeName, attributeValue));` This function is not `final` for backwards compatibility reasons, however, existing subclassers whould override `addComponentChange` instead.
    `void` | `addAttributeChangeListener(AttributeChangeListener acl)` Adds an AttributeChangeListener.
    `protected void` | `addClientBehavior(String eventName, javax.faces.component.behavior.ClientBehavior behavior)` Utility method to assist sub-classes in the implementation of the `ClientBehaviorHolder` interface.
    `ComponentChange` | `addComponentChange(ComponentChange change)` Adds a change for a Component, or the Component's subtree, returning the change actually added, or `null`, if no change was added.
    `protected ComponentChange` | `addComponentChange(javax.faces.component.UIComponent component, ComponentChange change)` Called when adding a change to a Component, or the Component's subtree.
    `void` | `addComponentChangeFilter(ComponentChangeFilter componentChangeFilter)` Add a component change filter to this component.
    `protected void` | `addFacesListener(javax.faces.event.FacesListener listener)`
    `void` | `broadcast(javax.faces.event.FacesEvent event)`
    `protected void` | `broadcastToMethodBinding(javax.faces.event.FacesEvent event, javax.faces.el.MethodBinding method)` Deprecated.
    `protected void` | `broadcastToMethodExpression(javax.faces.event.FacesEvent event, javax.el.MethodExpression method)` Broadcast an event to a MethodExpression.
    `void` | `clearCachedClientIds()` Clears all of the cached clientIds in this component subtree
    `void` | `clearInitialState()`
    `protected FacesBean` | `createFacesBean(String rendererType)`
    `void` | `decode(javax.faces.context.FacesContext context)`
    `protected void` | `decodeChildren(javax.faces.context.FacesContext context)` Delegates to LifecycleRenderer, if present, otherwise calls decodeChildrenImpl.
    `protected void` | `decodeChildrenImpl(javax.faces.context.FacesContext context)` Calls processDecodes on all facets and children of this component.
    `void` | `encodeBegin(javax.faces.context.FacesContext context)`
    `void` | `encodeChildren(javax.faces.context.FacesContext context)`
    `void` | `encodeEnd(javax.faces.context.FacesContext context)`
    `javax.faces.component.UIComponent` | `findComponent(String id)`
    `javax.el.MethodExpression` | `getAttributeChangeListener()` Gets the method binding to an AttributeChangeListener.
    `AttributeChangeListener[]` | `getAttributeChangeListeners()` Gets the registered AttributeChangeListeners.
    `Map<String,Object>` | `getAttributes()`
    `protected FacesBean.Type` | `getBeanType()`
    `protected boolean` | `getBooleanProperty(PropertyKey key, boolean defaultValue)`
    `int` | `getChildCount()`
    `List<javax.faces.component.UIComponent>` | `getChildren()` Create (if necessary) and return a List of the children associated with this component.
    `protected Map<String,List<javax.faces.component.behavior.ClientBehavior>>` | `getClientBehaviors()` Utility method to assist sub-classes in the implementation of the `ClientBehaviorHolder` interface.
    `String` | `getClientId(javax.faces.context.FacesContext context)`
    `ComponentChangeFilter[]` | `getComponentChangeFilters()` Returns all the ComponentChangeFilters that are registered with this component.
    `String` | `getContainerClientId(javax.faces.context.FacesContext context, javax.faces.component.UIComponent child)` Provides additional context (the target child component for which the container client ID is requested) to a naming container for constructing a client ID.
    `protected String` | `getDefaultEventName()` Utility method to assist sub-classes in the implementation of the `ClientBehaviorHolder` interface.
    `FacesBean` | `getFacesBean()` Returns the FacesBean used for storing the component's state.
    `protected javax.faces.context.FacesContext` | `getFacesContext()` Return the `FacesContext` instance for the current request.
    `protected javax.faces.event.FacesListener[]` | `getFacesListeners(Class clazz)`
    `javax.faces.component.UIComponent` | `getFacet(String facetName)`
    `int` | `getFacetCount()` Return the number of facets.
    `Iterator<String>` | `getFacetNames()` Returns an Iterator over the names of all facets.
    `Map<String,javax.faces.component.UIComponent>` | `getFacets()` Create (if necessary) and return a Map of the facets associated with this component.
    `Iterator<javax.faces.component.UIComponent>` | `getFacetsAndChildren()`
    `abstract String` | `getFamily()`
    `String` | `getId()` Gets the identifier for the component.
    `protected int` | `getIntProperty(PropertyKey key, int defaultValue)`
    `protected LifecycleRenderer` | `getLifecycleRenderer(javax.faces.context.FacesContext context)`
    `List<javax.faces.event.SystemEventListener>` | `getListenersForEventClass(Class<? extends javax.faces.event.SystemEvent> eventClass)`
    `javax.faces.component.UIComponent` | `getParent()`
    `protected Object` | `getProperty(PropertyKey key)`
    `protected PropertyKey` | `getPropertyKey(String name)`
    `protected Iterator<javax.faces.component.UIComponent>` | `getRenderedFacetsAndChildren(javax.faces.context.FacesContext facesContext)` Specifies what facets and children components should be processed as rendered for life-cycle methods.
    `protected javax.faces.render.Renderer` | `getRenderer(javax.faces.context.FacesContext context)`
    `String` | `getRendererType()`
    `boolean` | `getRendersChildren()`
    `javax.faces.el.ValueBinding` | `getValueBinding(String name)`
    `javax.el.ValueExpression` | `getValueExpression(String name)`
    `boolean` | `initialStateMarked()`
    `protected boolean` | `invokeOnChildrenComponents(javax.faces.context.FacesContext context, String clientId, javax.faces.component.ContextCallback callback)` Convenience method to call `invokeOnComponent` on all of the children of a component, surrounding the invocation with calls to `setup/tearDownChildrenVisitingContext`.
    `boolean` | `invokeOnComponent(javax.faces.context.FacesContext context, String clientId, javax.faces.component.ContextCallback callback)` Override to calls the hooks for setting up and tearing down the context before the children are visited.
    `protected boolean` | `invokeOnNamingContainerComponent(javax.faces.context.FacesContext context, String clientId, javax.faces.component.ContextCallback callback)` Optimized implementation of `invokeOnComponent` for NamingContainers.
    `boolean` | `isRendered()`
    `boolean` | `isTransient()`
    `void` | `markInitialState()`
    `void` | `processDecodes(javax.faces.context.FacesContext context)`
    `void` | `processRestoreState(javax.faces.context.FacesContext context, Object state)`
    `Object` | `processSaveState(javax.faces.context.FacesContext context)`
    `void` | `processUpdates(javax.faces.context.FacesContext context)`
    `void` | `processValidators(javax.faces.context.FacesContext context)`
    `void` | `queueEvent(javax.faces.event.FacesEvent event)`
    `void` | `removeAttributeChangeListener(AttributeChangeListener acl)` Removes an AttributeChangeListener.
    `void` | `removeComponentChangeFilter(ComponentChangeFilter componentChangeFilter)` Remove a component change filter to this component.
    `protected void` | `removeFacesListener(javax.faces.event.FacesListener listener)`
    `void` | `restoreState(javax.faces.context.FacesContext facesContext, Object stateObj)`
    `protected boolean` | `satisfiesPartialTrigger(javax.faces.event.FacesEvent event)` Check if a faces event broadcast to this component should trigger the partial updates of the target listeners of this component.
    `Object` | `saveState(javax.faces.context.FacesContext facesContext)`
    `void` | `setAttributeChangeListener(javax.faces.el.MethodBinding mb)` Deprecated.
    `void` | `setAttributeChangeListener(javax.el.MethodExpression mb)` Sets a method binding to an AttributeChangeListener.
    `protected void` | `setBooleanProperty(PropertyKey key, boolean value)`
    `void` | `setId(String id)` Sets the identifier for the component.
    `protected void` | `setIntProperty(PropertyKey key, int value)`
    `void` | `setParent(javax.faces.component.UIComponent parent)` Set the parent `UIComponent` of this `UIComponent`.
    `protected void` | `setProperty(PropertyKey key, Object value)`
    `void` | `setRendered(boolean rendered)`
    `void` | `setRendererType(String rendererType)`
    `void` | `setTransient(boolean newTransient)`
    `protected void` | `setupFlattenedChildrenContext(javax.faces.context.FacesContext facesContext, ComponentProcessingContext cpContext)` Convenience method for implementors of `FlattenedComponent` to setup either the visiting context or the encoding context based on if the `ComponentProcessingContext` is processing for encoding or not.
    `protected void` | `setupFlattenedContext(javax.faces.context.FacesContext facesContext, ComponentProcessingContext cpContext)` Convenience method for implementors of `FlattenedComponent` to setup either the visiting context or the encoding context based on if the `ComponentProcessingContext` is processing for encoding or not.
    `void` | `setValueBinding(String name, javax.faces.el.ValueBinding binding)`
    `void` | `setValueExpression(String name, javax.el.ValueExpression expression)`
    `void` | `subscribeToEvent(Class<? extends javax.faces.event.SystemEvent> eventClass, javax.faces.event.ComponentSystemEventListener componentListener)`
    `protected void` | `tearDownFlattenedChildrenContext(javax.faces.context.FacesContext facesContext, ComponentProcessingContext cpContext)` Convenience method for implementors of `FlattenedComponent` to tear down either the visiting context or the encoding context based on if the `ComponentProcessingContext` is processing for encoding or not.
    `protected void` | `tearDownFlattenedContext(javax.faces.context.FacesContext facesContext, ComponentProcessingContext cpContext)` Convenience method for implementors of `FlattenedComponent` to tear down either the visiting context or the encoding context based on if the `ComponentProcessingContext` is processing for encoding or not.
    `String` | `toString()`
    `void` | `unsubscribeFromEvent(Class<? extends javax.faces.event.SystemEvent> eventClass, javax.faces.event.ComponentSystemEventListener componentListener)`
    `protected void` | `updateChildren(javax.faces.context.FacesContext context)` Delegates to LifecycleRenderer, if present, otherwise calls upateChildrenImpl.
    `protected void` | `updateChildrenImpl(javax.faces.context.FacesContext context)`
    `protected void` | `validateChildren(javax.faces.context.FacesContext context)` Delegates to LifecycleRenderer, if present, otherwise calls validateChildrenImpl.
    `protected void` | `validateChildrenImpl(javax.faces.context.FacesContext context)` Calls processValidators on all facets and children of this component.

    - ### Methods inherited from class org.apache.myfaces.trinidad.component.UIXComponent

      `addPartialTarget, broadcastInContext, clearCachedClientIds, defaultGetRenderedFacetsAndChildren, encodeFlattenedChild, encodeFlattenedChildren, getLogicalParent, getLogicalParent, getStateHelper, getStateHelper, isVisitable, partialEncodeVisit, processFlattenedChildren, processFlattenedChildren, processFlattenedChildren, processFlattenedChildren, setPartialTarget, setupChildrenEncodingContext, setupChildrenVisitingContext, setupEncodingContext, setUpEncodingContext, setupVisitingContext, tearDownChildrenEncodingContext, tearDownChildrenVisitingContext, tearDownEncodingContext, tearDownVisitingContext, visitAllChildren, visitChildren, visitChildren, visitTree, visitTree`

    - ### Methods inherited from class javax.faces.component.UIComponent

      `encodeAll, getClientId, getCompositeComponentParent, getContainerClientId, getCurrentComponent, getCurrentCompositeComponent, getNamingContainer, getResourceBundleMap, getTransientStateHelper, getTransientStateHelper, isCompositeComponent, isInView, popComponentFromEL, processEvent, pushComponentToEL, restoreTransientState, saveTransientState, setInView`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### TYPE

          public static final FacesBean.Type TYPE

    - #### ID_KEY

          public static final PropertyKey ID_KEY

    - #### RENDERED_KEY

          public static final PropertyKey RENDERED_KEY

    - #### BINDING_KEY

          public static final PropertyKey BINDING_KEY

    - #### TRANSIENT_KEY

          public static final PropertyKey TRANSIENT_KEY

    - #### RENDERER_TYPE_KEY

          public static final PropertyKey RENDERER_TYPE_KEY

  - ### Constructor Detail

    - #### UIXComponentBase

          public UIXComponentBase()

    - #### UIXComponentBase

          public UIXComponentBase(String rendererType)

  - ### Method Detail

    - #### createFacesBean

          protected FacesBean createFacesBean(String rendererType)

    - #### getPropertyKey

          protected PropertyKey getPropertyKey(String name)

    - #### getBeanType

          protected FacesBean.Type getBeanType()

    - #### getFacesBean

          public FacesBean getFacesBean()

      Description copied from class: `UIXComponent`
      Returns the FacesBean used for storing the component's state.
      Specified by:
        `getFacesBean` in class `UIXComponent`

    - #### getContainerClientId

          public String getContainerClientId(javax.faces.context.FacesContext context,
                                    javax.faces.component.UIComponent child)

      Description copied from class: `UIXComponent`
      Provides additional context (the target child component for which the container client ID is requested) to a naming container for constructing a client ID. This is useful for components such as @link UIXTable and @link UIXTreeTable which need to return different container client IDs for stamped and non-stamped child components.
      Specified by:
        `getContainerClientId` in class `UIXComponent`
      See Also:
        `getClientId(FacesContext context)`

    - #### addAttributeChangeListener

          public void addAttributeChangeListener(AttributeChangeListener acl)

      Description copied from class: `UIXComponent`
      Adds an AttributeChangeListener. Attribute change events are not delivered for any programmatic change to a property. They are only delivered when a renderer changes a property without the application's specific request. An example of an attribute change events might include the width of a column that supported client-side resizing.
      Specified by:
        `addAttributeChangeListener` in class `UIXComponent`

    - #### removeAttributeChangeListener

          public void removeAttributeChangeListener(AttributeChangeListener acl)

      Description copied from class: `UIXComponent`
      Removes an AttributeChangeListener. Attribute change events are not delivered for any programmatic change to a property. They are only delivered when a renderer changes a property without the application's specific request. An example of an attribute change events might include the width of a column that supported client-side resizing.
      Specified by:
        `removeAttributeChangeListener` in class `UIXComponent`

    - #### getAttributeChangeListeners

          public AttributeChangeListener[] getAttributeChangeListeners()

      Description copied from class: `UIXComponent`
      Gets the registered AttributeChangeListeners.
      Specified by:
        `getAttributeChangeListeners` in class `UIXComponent`

    - #### setAttributeChangeListener

          public void setAttributeChangeListener(javax.el.MethodExpression mb)

      Description copied from class: `UIXComponent`
      Sets a method binding to an AttributeChangeListener. Attribute change events are not delivered for any programmatic change to a property. They are only delivered when a renderer changes a property without the application's specific request. An example of an attribute change events might include the width of a column that supported client-side resizing.
      Specified by:
        `setAttributeChangeListener` in class `UIXComponent`

    - #### setAttributeChangeListener

          @Deprecated
          public void setAttributeChangeListener(javax.faces.el.MethodBinding mb)

      Deprecated.

    - #### getAttributeChangeListener

          public javax.el.MethodExpression getAttributeChangeListener()

      Description copied from class: `UIXComponent`
      Gets the method binding to an AttributeChangeListener. Attribute change events are not delivered for any programmatic change to a property. They are only delivered when a renderer changes a property without the application's specific request. An example of an attribute change events might include the width of a column that supported client-side resizing.
      Specified by:
        `getAttributeChangeListener` in class `UIXComponent`

    - #### getValueExpression

          public javax.el.ValueExpression getValueExpression(String name)

      Overrides:
        `getValueExpression` in class `javax.faces.component.UIComponent`

    - #### setValueExpression

          public void setValueExpression(String name,
                                javax.el.ValueExpression expression)

      Overrides:
        `setValueExpression` in class `javax.faces.component.UIComponent`

    - #### getValueBinding

          public javax.faces.el.ValueBinding getValueBinding(String name)

      Specified by:
        `getValueBinding` in class `javax.faces.component.UIComponent`

    - #### setValueBinding

          public void setValueBinding(String name,
                             javax.faces.el.ValueBinding binding)

      Specified by:
        `setValueBinding` in class `javax.faces.component.UIComponent`

    - #### getAttributes

          public Map<String,Object> getAttributes()

      Specified by:
        `getAttributes` in class `javax.faces.component.UIComponent`

    - #### addComponentChange

          public final ComponentChange addComponentChange(ComponentChange change)

      Adds a change for a Component, or the Component's subtree, returning the change actually added, or `null`, if no change was added. The proposed change may be rejected by the component itself, one of its ancestors, or the ChangeManager implementation.
      Parameters:
        `change` - The change to add for this component
      Returns:
        The ComponentChange actually added, or `null` if no change was added.
      See Also:
        `addComponentChange(UIComponent, ComponentChange)`

    - #### addComponentChangeFilter

          public final void addComponentChangeFilter(ComponentChangeFilter componentChangeFilter)

      Add a component change filter to this component. When `addComponentChange(ComponentChange)` method on this component is called, the ComponentChange will be added only if it is accepted by all the component change filters attached to this component as well as those attached to all its ancestors.
      Parameters:
        `componentChangeFilter` - The ComponentChangeFilter instance to add to this component
      See Also:
        `addComponentChange(ComponentChange)`

    - #### removeComponentChangeFilter

          public final void removeComponentChangeFilter(ComponentChangeFilter componentChangeFilter)

      Remove a component change filter to this component.
      Parameters:
        `componentChangeFilter` - The ComponentChangeFilter instance to remove from this component
      See Also:
        `addComponentChangeFilter(ComponentChangeFilter)`

    - #### getComponentChangeFilters

          public final ComponentChangeFilter[] getComponentChangeFilters()

      Returns all the ComponentChangeFilters that are registered with this component.
      Returns:
        An array of registered ComponentChangeFilters

    - #### getRenderedFacetsAndChildren

          protected Iterator<javax.faces.component.UIComponent> getRenderedFacetsAndChildren(javax.faces.context.FacesContext facesContext)

      Description copied from class: `UIXComponent`
      Specifies what facets and children components should be processed as rendered for life-cycle methods. Any components not returned will not be processed during methods such as decoding, validating, updating the model, rendered-only tree visiting, etc.
      Overrides:
        `getRenderedFacetsAndChildren` in class `UIXComponent`
      Parameters:
        `facesContext` - the facesContext
      Returns:
        An iterator of components to process. Must not return null (return an empty iterator if no children components should be processed).

    - #### setupFlattenedContext

          protected void setupFlattenedContext(javax.faces.context.FacesContext facesContext,
                                   ComponentProcessingContext cpContext)

      Convenience method for implementors of `FlattenedComponent` to setup either the visiting context or the encoding context based on if the `ComponentProcessingContext` is processing for encoding or not.
      Parameters:
        `facesContext` - The faces context
        `cpContext` - The component processing context passed to `FlattenedComponent.processFlattenedChildren(javax.faces.context.FacesContext, org.apache.myfaces.trinidad.component.ComponentProcessingContext, org.apache.myfaces.trinidad.component.ComponentProcessor<S>, S)`

    - #### setupFlattenedChildrenContext

          protected void setupFlattenedChildrenContext(javax.faces.context.FacesContext facesContext,
                                           ComponentProcessingContext cpContext)

      Convenience method for implementors of `FlattenedComponent` to setup either the visiting context or the encoding context based on if the `ComponentProcessingContext` is processing for encoding or not.
      Parameters:
        `facesContext` - The faces context
        `cpContext` - The component processing context passed to `FlattenedComponent.processFlattenedChildren(javax.faces.context.FacesContext, org.apache.myfaces.trinidad.component.ComponentProcessingContext, org.apache.myfaces.trinidad.component.ComponentProcessor<S>, S)`

    - #### tearDownFlattenedContext

          protected void tearDownFlattenedContext(javax.faces.context.FacesContext facesContext,
                                      ComponentProcessingContext cpContext)

      Convenience method for implementors of `FlattenedComponent` to tear down either the visiting context or the encoding context based on if the `ComponentProcessingContext` is processing for encoding or not.
      Parameters:
        `facesContext` - The faces context
        `cpContext` - The component processing context passed to `FlattenedComponent.processFlattenedChildren(javax.faces.context.FacesContext, org.apache.myfaces.trinidad.component.ComponentProcessingContext, org.apache.myfaces.trinidad.component.ComponentProcessor<S>, S)`

    - #### tearDownFlattenedChildrenContext

          protected void tearDownFlattenedChildrenContext(javax.faces.context.FacesContext facesContext,
                                              ComponentProcessingContext cpContext)

      Convenience method for implementors of `FlattenedComponent` to tear down either the visiting context or the encoding context based on if the `ComponentProcessingContext` is processing for encoding or not.
      Parameters:
        `facesContext` - The faces context
        `cpContext` - The component processing context passed to `FlattenedComponent.processFlattenedChildren(javax.faces.context.FacesContext, org.apache.myfaces.trinidad.component.ComponentProcessingContext, org.apache.myfaces.trinidad.component.ComponentProcessor<S>, S)`

    - #### getClientId

          public String getClientId(javax.faces.context.FacesContext context)

      Specified by:
        `getClientId` in class `javax.faces.component.UIComponent`

    - #### getId

          public String getId()

      Gets the identifier for the component. This implementation never returns a null id.
      Specified by:
        `getId` in class `javax.faces.component.UIComponent`

    - #### setId

          public void setId(String id)

      Sets the identifier for the component. the identifier for the component. Every component may be named by a component identifier that must conform to the following rules:
      - They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).
      - Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, dashes ( - ), or underscores ( _ ). To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component that is a NamingContainer (if any).
      Specified by:
        `setId` in class `javax.faces.component.UIComponent`

    - #### clearCachedClientIds

          public void clearCachedClientIds()

      Clears all of the cached clientIds in this component subtree
      Overrides:
        `clearCachedClientIds` in class `UIXComponent`

    - #### getFamily

          public abstract String getFamily()

      Specified by:
        `getFamily` in class `javax.faces.component.UIComponent`

    - #### getParent

          public javax.faces.component.UIComponent getParent()

      Specified by:
        `getParent` in class `javax.faces.component.UIComponent`

    - #### setParent

          public void setParent(javax.faces.component.UIComponent parent)

      Set the parent `UIComponent` of this `UIComponent`.

      Specified by:
        `setParent` in class `javax.faces.component.UIComponent`
      Parameters:
        `parent` - The new parent, or `null` for the root node of a component tree

    - #### isRendered

          public boolean isRendered()

      Specified by:
        `isRendered` in class `javax.faces.component.UIComponent`

    - #### setRendered

          public void setRendered(boolean rendered)

      Specified by:
        `setRendered` in class `javax.faces.component.UIComponent`

    - #### isTransient

          public boolean isTransient()

    - #### setTransient

          public void setTransient(boolean newTransient)

    - #### getRendererType

          public String getRendererType()

      Specified by:
        `getRendererType` in class `javax.faces.component.UIComponent`

    - #### setRendererType

          public void setRendererType(String rendererType)

      Specified by:
        `setRendererType` in class `javax.faces.component.UIComponent`

    - #### getRendersChildren

          public boolean getRendersChildren()

      Specified by:
        `getRendersChildren` in class `javax.faces.component.UIComponent`

    - #### findComponent

          public javax.faces.component.UIComponent findComponent(String id)

      Specified by:
        `findComponent` in class `javax.faces.component.UIComponent`

    - #### getChildren

          public List<javax.faces.component.UIComponent> getChildren()

      Create (if necessary) and return a List of the children associated with this component.

      Specified by:
        `getChildren` in class `javax.faces.component.UIComponent`

    - #### getChildCount

          public int getChildCount()

      Specified by:
        `getChildCount` in class `javax.faces.component.UIComponent`

    - #### getFacets

          public Map<String,javax.faces.component.UIComponent> getFacets()

      Create (if necessary) and return a Map of the facets associated with this component.

      Specified by:
        `getFacets` in class `javax.faces.component.UIComponent`

    - #### getFacet

          public javax.faces.component.UIComponent getFacet(String facetName)

      Specified by:
        `getFacet` in class `javax.faces.component.UIComponent`

    - #### getFacetNames

          public Iterator<String> getFacetNames()

      Returns an Iterator over the names of all facets. Unlike getFacets().keySet().iterator(), this does not require instantiating a Map if there are no facets. (Note that this is not part of the UIComponent API.)

    - #### getFacetsAndChildren

          public Iterator<javax.faces.component.UIComponent> getFacetsAndChildren()

      Specified by:
        `getFacetsAndChildren` in class `javax.faces.component.UIComponent`

    - #### broadcast

          public void broadcast(javax.faces.event.FacesEvent event)
                         throws javax.faces.event.AbortProcessingException

      Specified by:
        `broadcast` in class `javax.faces.component.UIComponent`
      Throws:
        `javax.faces.event.AbortProcessingException`

    - #### satisfiesPartialTrigger

          protected boolean satisfiesPartialTrigger(javax.faces.event.FacesEvent event)

      Check if a faces event broadcast to this component should trigger the partial updates of the target listeners of this component. By default, all events trigger a partial update of the listeners.
      Parameters:
        `event` - The event to check
      Returns:
        true if the partial triggers should be updated by this event being broadcast

    - #### decode

          public void decode(javax.faces.context.FacesContext context)

      Specified by:
        `decode` in class `javax.faces.component.UIComponent`

    - #### encodeBegin

          public void encodeBegin(javax.faces.context.FacesContext context)
                           throws IOException

      Specified by:
        `encodeBegin` in class `javax.faces.component.UIComponent`
      Throws:
        `IOException`

    - #### encodeChildren

          public void encodeChildren(javax.faces.context.FacesContext context)
                              throws IOException

      Specified by:
        `encodeChildren` in class `javax.faces.component.UIComponent`
      Throws:
        `IOException`

    - #### encodeEnd

          public void encodeEnd(javax.faces.context.FacesContext context)
                         throws IOException

      Specified by:
        `encodeEnd` in class `javax.faces.component.UIComponent`
      Throws:
        `IOException`

    - #### queueEvent

          public void queueEvent(javax.faces.event.FacesEvent event)

      Specified by:
        `queueEvent` in class `javax.faces.component.UIComponent`

    - #### processDecodes

          public void processDecodes(javax.faces.context.FacesContext context)

      Specified by:
        `processDecodes` in class `javax.faces.component.UIComponent`

    - #### processValidators

          public void processValidators(javax.faces.context.FacesContext context)

      Specified by:
        `processValidators` in class `javax.faces.component.UIComponent`

    - #### processUpdates

          public void processUpdates(javax.faces.context.FacesContext context)

      Specified by:
        `processUpdates` in class `javax.faces.component.UIComponent`

    - #### processSaveState

          public Object processSaveState(javax.faces.context.FacesContext context)

      Specified by:
        `processSaveState` in class `javax.faces.component.UIComponent`

    - #### processRestoreState

          public void processRestoreState(javax.faces.context.FacesContext context,
                                 Object state)

      Specified by:
        `processRestoreState` in class `javax.faces.component.UIComponent`

    - #### markInitialState

          public void markInitialState()

      Specified by:
        `markInitialState` in interface `javax.faces.component.PartialStateHolder`
      Specified by:
        `markInitialState` in class `UIXComponent`

    - #### clearInitialState

          public void clearInitialState()

      Specified by:
        `clearInitialState` in interface `javax.faces.component.PartialStateHolder`
      Overrides:
        `clearInitialState` in class `javax.faces.component.UIComponent`

    - #### initialStateMarked

          public boolean initialStateMarked()

      Specified by:
        `initialStateMarked` in interface `javax.faces.component.PartialStateHolder`
      Overrides:
        `initialStateMarked` in class `javax.faces.component.UIComponent`

    - #### saveState

          public Object saveState(javax.faces.context.FacesContext facesContext)

    - #### restoreState

          public void restoreState(javax.faces.context.FacesContext facesContext,
                          Object stateObj)

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### getFacesContext

          protected javax.faces.context.FacesContext getFacesContext()

      Return the `FacesContext` instance for the current request.

      Specified by:
        `getFacesContext` in class `javax.faces.component.UIComponent`

    - #### decodeChildren

          protected final void decodeChildren(javax.faces.context.FacesContext context)

      Delegates to LifecycleRenderer, if present, otherwise calls decodeChildrenImpl.
      Parameters:
        `context` - the current FacesContext

    - #### decodeChildrenImpl

          protected void decodeChildrenImpl(javax.faces.context.FacesContext context)

      Calls processDecodes on all facets and children of this component.
      Parameters:
        `context` - the current FacesContext

    - #### validateChildren

          protected final void validateChildren(javax.faces.context.FacesContext context)

      Delegates to LifecycleRenderer, if present, otherwise calls validateChildrenImpl.
      Parameters:
        `context` - the current FacesContext

    - #### validateChildrenImpl

          protected void validateChildrenImpl(javax.faces.context.FacesContext context)

      Calls processValidators on all facets and children of this component.
      Parameters:
        `context` - the current FacesContext

    - #### updateChildren

          protected final void updateChildren(javax.faces.context.FacesContext context)

      Delegates to LifecycleRenderer, if present, otherwise calls upateChildrenImpl.
      Parameters:
        `context` - the current FacesContext

    - #### updateChildrenImpl

          protected void updateChildrenImpl(javax.faces.context.FacesContext context)

    - #### addFacesListener

          protected void addFacesListener(javax.faces.event.FacesListener listener)

      Specified by:
        `addFacesListener` in class `javax.faces.component.UIComponent`

    - #### removeFacesListener

          protected void removeFacesListener(javax.faces.event.FacesListener listener)

      Specified by:
        `removeFacesListener` in class `javax.faces.component.UIComponent`

    - #### getFacesListeners

          protected javax.faces.event.FacesListener[] getFacesListeners(Class clazz)

      Specified by:
        `getFacesListeners` in class `javax.faces.component.UIComponent`

    - #### addComponentChange

          protected ComponentChange addComponentChange(javax.faces.component.UIComponent component,
                                           ComponentChange change)

      Called when adding a change to a Component, or the Component's subtree. The default implementation delegates the call to the parent, if possible, otherwise it adds the change to the ChangeManager directly. Subclasses can override this method to among other things, filter or transform the changes.
      Parameters:
        `component` - The component that the change is for
        `change` - The change to add for this component
      Returns:
        The ComponentChange actually added, or `null` if no change was added.
      See Also:
        `addComponentChange(ComponentChange)`, `addAttributeChange(java.lang.String, java.lang.Object)`

    - #### addAttributeChange

          protected void addAttributeChange(String attributeName,
                                Object attributeValue)

      Convenience function for `addComponentChange(new AttributeComponentChange(attributeName, attributeValue));` This function is not `final` for backwards compatibility reasons, however, existing subclassers whould override `addComponentChange` instead.
      Parameters:
        `attributeName` -
        `attributeValue` -
      See Also:
        `addComponentChange(UIComponent, ComponentChange)`

    - #### getRenderer

          protected javax.faces.render.Renderer getRenderer(javax.faces.context.FacesContext context)

      Specified by:
        `getRenderer` in class `javax.faces.component.UIComponent`

    - #### getLifecycleRenderer

          protected LifecycleRenderer getLifecycleRenderer(javax.faces.context.FacesContext context)

    - #### setProperty

          protected void setProperty(PropertyKey key,
                         Object value)

    - #### getProperty

          protected Object getProperty(PropertyKey key)

    - #### setBooleanProperty

          protected void setBooleanProperty(PropertyKey key,
                                boolean value)

    - #### getBooleanProperty

          protected boolean getBooleanProperty(PropertyKey key,
                                   boolean defaultValue)

    - #### setIntProperty

          protected void setIntProperty(PropertyKey key,
                            int value)

    - #### getIntProperty

          protected int getIntProperty(PropertyKey key,
                           int defaultValue)

    - #### getFacetCount

          public int getFacetCount()

      Return the number of facets. This is more efficient than calling getFacets().size();
      Overrides:
        `getFacetCount` in class `javax.faces.component.UIComponent`

    - #### broadcastToMethodBinding

          protected final void broadcastToMethodBinding(javax.faces.event.FacesEvent event,
                                      javax.faces.el.MethodBinding method)
                                                 throws javax.faces.event.AbortProcessingException

      Deprecated.
      Broadcast an event to a MethodBinding. This can be used to support MethodBindings such as the "actionListener" binding on ActionSource components: <tr:commandButton actionListener="#{mybean.myActionListener}">
      Throws:
        `javax.faces.event.AbortProcessingException`

    - #### adaptMethodBinding

          public static javax.el.MethodExpression adaptMethodBinding(javax.faces.el.MethodBinding binding)

      Given a MethodBinding, create a MethodExpression that adapts it.

    - #### broadcastToMethodExpression

          protected final void broadcastToMethodExpression(javax.faces.event.FacesEvent event,
                                         javax.el.MethodExpression method)
                                                    throws javax.faces.event.AbortProcessingException

      Broadcast an event to a MethodExpression. This can be used to support MethodBindings such as the "actionListener" binding on ActionSource components: <tr:commandButton actionListener="#{mybean.myActionListener}">
      Throws:
        `javax.faces.event.AbortProcessingException`

    - #### invokeOnChildrenComponents

          protected final boolean invokeOnChildrenComponents(javax.faces.context.FacesContext context,
                                           String clientId,
                                           javax.faces.component.ContextCallback callback)
                                                      throws javax.faces.FacesException

      Convenience method to call `invokeOnComponent` on all of the children of a component, surrounding the invocation with calls to `setup/tearDownChildrenVisitingContext`. This is useful when a component sometimes optimizes away calling `invokeOnComponent` on its children.
      Throws:
        `javax.faces.FacesException`
      See Also:
        `UIXComponent.setupChildrenVisitingContext(javax.faces.context.FacesContext)`, `UIXComponent.tearDownChildrenVisitingContext(javax.faces.context.FacesContext)`

    - #### invokeOnNamingContainerComponent

          protected final boolean invokeOnNamingContainerComponent(javax.faces.context.FacesContext context,
                                                 String clientId,
                                                 javax.faces.component.ContextCallback callback)
                                                            throws javax.faces.FacesException

      Optimized implementation of `invokeOnComponent` for NamingContainers. If the clientId isn't within the NamingContainer, invocation of the NamingContainer's children is skipped.

      Subclasses implementing NamingContainer should override `invokeOnComponent` and delegate to this method.

      Throws:
        `javax.faces.FacesException`

    - #### invokeOnComponent

          public boolean invokeOnComponent(javax.faces.context.FacesContext context,
                                  String clientId,
                                  javax.faces.component.ContextCallback callback)
                                    throws javax.faces.FacesException

      Override to calls the hooks for setting up and tearing down the context before the children are visited.
      Overrides:
        `invokeOnComponent` in class `javax.faces.component.UIComponent`
      Throws:
        `javax.faces.FacesException`
      See Also:
        `UIXComponent.setupVisitingContext(javax.faces.context.FacesContext)`, `UIXComponent.tearDownVisitingContext(javax.faces.context.FacesContext)`

    - #### subscribeToEvent

          public void subscribeToEvent(Class<? extends javax.faces.event.SystemEvent> eventClass,
                              javax.faces.event.ComponentSystemEventListener componentListener)

      Overrides:
        `subscribeToEvent` in class `javax.faces.component.UIComponent`

    - #### unsubscribeFromEvent

          public void unsubscribeFromEvent(Class<? extends javax.faces.event.SystemEvent> eventClass,
                                  javax.faces.event.ComponentSystemEventListener componentListener)

      Overrides:
        `unsubscribeFromEvent` in class `javax.faces.component.UIComponent`

    - #### getListenersForEventClass

          public List<javax.faces.event.SystemEventListener> getListenersForEventClass(Class<? extends javax.faces.event.SystemEvent> eventClass)

      Specified by:
        `getListenersForEventClass` in interface `javax.faces.event.SystemEventListenerHolder`
      Overrides:
        `getListenersForEventClass` in class `javax.faces.component.UIComponent`

    - #### addClientBehavior

          protected void addClientBehavior(String eventName,
                               javax.faces.component.behavior.ClientBehavior behavior)

      Utility method to assist sub-classes in the implementation of the `ClientBehaviorHolder` interface.

      This method must only be called by classes that implement the interface, doing otherwise will result in an exception.

      Parameters:
        `eventName` - The event name
        `behavior` - The behavior to add
      See Also:
        `ClientBehaviorHolder.addClientBehavior(String, ClientBehavior)`

    - #### getClientBehaviors

          protected Map<String,List<javax.faces.component.behavior.ClientBehavior>> getClientBehaviors()

      Utility method to assist sub-classes in the implementation of the `ClientBehaviorHolder` interface.

      This method must only be called by classes that implement the interface, doing otherwise will result in an exception.

      Returns:
        Read-only map of the client behaviors for this component
      See Also:
        `ClientBehaviorHolder.getClientBehaviors()`

    - #### getDefaultEventName

          protected String getDefaultEventName()

      Utility method to assist sub-classes in the implementation of the `ClientBehaviorHolder` interface.

      This method must only be called by classes that implement the interface, doing otherwise will result in an exception.

      Returns:
        null
      See Also:
        `ClientBehaviorHolder.getDefaultEventName()`

Copyright © 2001-2017 The Apache Software Foundation. All Rights Reserved.