Helper function called by Renderers to encode a flattened view of a group of
potentially FlattenedComponent instances rooted at a single child of the component,
invoking the childProcessor with its
callbackContext on each renderable instance.

Helper function called by FlattenedComponents to iterate over a flattened view of their
children, potentially themselves FlattenedComponents, invoking the childProcessor
with its callbackContext on each renderable instance.

Helper function called by FlattenedComponent to iterate over a flattened view of a group of
potentially FlattenedComponent instances rooted at a single child of the FlattenedComponent,
invoking the childProcessor with its
callbackContext on each renderable instance.

Helper function called by Renderers to iterate over a flattened view of the
children, potentially containing FlattenedComponents, of the component the Renderer is
encoding, invoking the childProcessor with its
callbackContext on each renderable instance.

Helper function called by Renderers to iterate over a flattened view of a group of
potentially FlattenedComponent instances rooted at a single child of the component to collect
information about these children prior to encoding the children using
encodeFlattenedChild(FacesContext, ComponentProcessor, UIComponent, Object).

Helper function called by Renderers to iterate over a flattened view of a group of
potentially FlattenedComponent instances rooted at a single child of the component to collect
information about these children prior to encoding the children using
encodeFlattenedChild(FacesContext, ComponentProcessor, UIComponent, Object).

If the child is a FlattenedComponent, the childProcessor will
be called on each of that FlattenedComponent's children, recursing if those children are
themselves FlattenedComponents, otherwise, the childProcessor will be called on
the child itself.

If the Renderer accidentally passes in the component to be processed instead of one
of its children, the result will almost certainly be an infinite recursion and stack overflow.

Helper function called by Renderers to encode a flattened view of a group of
potentially FlattenedComponent instances rooted at a single child of the component,
invoking the childProcessor with its
callbackContext on each renderable instance. This method must be called
when the childProcessor is actually encoding and the childProcessor must not attempt
to encode the same component instances more than once per request.

If a Renderer needs to
collect information about its possibly flattened children before calling
encodeFlattenedChild(FacesContext, ComponentProcessor, UIComponent, Object),
it should call processFlattenedChildren(FacesContext, ComponentProcessor, UIComponent, Object)
to collect the information.

If the child is a FlattenedComponent, the childProcessor will
be called on each of that FlattenedComponent's children, recursing if those children are
themselves FlattenedComponents, otherwise, the childProcessor will be called on
the child itself.

FlattenedComponents that wish to check whether they are processed for the purpose of
encoding can check the ProcessingHints of the ComponentProcessingContext for the
presence of PROCESS_FOR_ENCODING hint.

If the Renderer accidentally passes in the component to be encoded instead of one
of its children, the result will almost certainly be an infinite recursion and stack overflow.

Helper function called by FlattenedComponent to iterate over a flattened view of a group of
potentially FlattenedComponent instances rooted at a single child of the FlattenedComponent,
invoking the childProcessor with its
callbackContext on each renderable instance.

If the child is a FlattenedComponent, the childProcessor will
be called on each of that FlattenedComponent's children, recursing if those children are
themselves FlattenedComponents, otherwise, the childProcessor will be called on
the child itself.

This method is typically used to flatten the contents of a facet of the FlattenedComponent.
If the FlattenedComponent accidentally passes in itself instead of one
of its children, the result will almost certainly be an infinite recursion and stack overflow.

Helper function called by Renderers to iterate over a flattened view of the
children, potentially containing FlattenedComponents, of the component the Renderer is
encoding, invoking the childProcessor with its
callbackContext on each renderable instance.

For each FlattenedComponent child, the childProcessor will
be called on each of that FlattenedComponent's children, recursing if those children are
themselves FlattenedComponents, otherwise, the childProcessor will be called on
the child itself.

This method is typically used to flatten the children of the FlattenedComponent to
be encoded.

Helper function called by Renderers to encode a flattened view of their children,
invoking the childProcessor with its
callbackContext on each renderable instance. This method must be called
when the childProcessor is actually encoding and the childProcessor must not attempt
to encode the same component instances more than once per request.

If a Renderer needs to
collect information about its possibly flattened children before calling
encodeFlattenedChild(FacesContext, ComponentProcessor, Iterable<UIComponent>, Object),
it should call
processFlattenedChildren(FacesContext, ComponentProcessor, Iterable<UIComponent>, Object)
to collect the information.

For each FlattenedComponent child, the childProcessor will
be called on each of that FlattenedComponent's children, recursing if those children are
themselves FlattenedComponents, otherwise, the childProcessor will be called on
the child itself.

FlattenedComponents that wish to check whether they are processed for the purpose of
encoding can check the ProcessingHints of the ComponentProcessingContext for the
presence of PROCESS_FOR_ENCODING hint.

Parameters:

context - FacesContext

childProcessor - ComponentProcessor to call on each flattened child

children - Initial set of children to flatten

callbackContext - context object to pass to the childProcessor on each invocation

Helper function called by FlattenedComponents to iterate over a flattened view of their
children, potentially themselves FlattenedComponents, invoking the childProcessor
with its callbackContext on each renderable instance.

For each FlattenedComponent child, the childProcessor will
be called on each of that FlattenedComponent's children, recursing if those children are
themselves FlattenedComponents, otherwise, the childProcessor will be called on
the child itself.

visitTree

UIXComponent.visitTree() implementations do not invoke the
VisitCallbackdirectly, but instead call
VisitContext.invokeVisitCallback()to invoke the
callback. This allows VisitContextimplementations
to provide optimized tree traversals, for example by only
calling the VisitCallbackfor a subset of components.

Overrides:

visitTree in class javax.faces.component.UIComponent

Parameters:

visitContext - the VisitContext for this visit

callback - the VisitCallback instance
whose visit method will be called
for each node visited.

Returns:

component implementations may return true
to indicate that the tree visit is complete (eg. all components
that need to be visited have been visited). This results in
the tree visit being short-circuited such that no more components
are visited.

See Also:

VisitContext.invokeVisitCallback()

getRenderedFacetsAndChildren

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.

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).

visitChildren

Hook for subclasses to override the manner in which the component's children are visited. The default
implementation visits all of the children and facets of the Component.
setupChildrenVisitingContext will have been called before this method is
invoked and tearDownChildrenVisitingContext will be called after.
respectively. If the purpose of this visit was to encode the component and the
component uses a CoreRenderer, the CoreRenderer's
setupChildrenEncodingContext and tearDownChildrenEncodingContext
will be called before and after this method is invoked, respectively.

UIXComponent.visitTree() implementations do not invoke the
VisitCallbackdirectly, but instead call
VisitContext.invokeVisitCallback()to invoke the
callback. This allows VisitContextimplementations
to provide optimized tree traversals, for example by only
calling the VisitCallbackfor a subset of components.

Parameters:

visitContext - the VisitContext for this visit

component - the UIComponent to start the visit from

callback - the VisitCallback instance
whose visit method will be called
for each node visited.

Returns:

component implementations may return true
to indicate that the tree visit is complete (eg. all components
that need to be visited have been visited). This results in
the tree visit being short-circuited such that no more components
are visited.

See Also:

VisitContext.invokeVisitCallback()

visitChildren

Utility method to allow the visiting of children components while visiting a parent using
a new visit callback or visit context. The method may only be called when the parent is
is the target of a visitation to ensure that it is properly in context.

parentComponent - the UIComponent to visit the children. The parent component
must be actively being visited in order to call this method.

callback - the VisitCallback instance
whose visit method will be called
for each node visited.

Returns:

component implementations may return true
to indicate that the tree visit is complete (eg. all components
that need to be visited have been visited). This results in
the tree visit being short-circuited such that no more components
are visited.

addPartialTarget

Add a component as a partial target to the current request. This code handles the
delegation to setPartialTarget(FacesContext, PartialPageContext)
for UIXComponents or assumes for UIComponent that components with a renderer
type are able to produce DOM elements that have IDs that can be replaced.

setPartialTarget

Marks this component as a partial target for this request. Typically called
by the RequestContext.
The component should add the client ID the desired rendered component to the context.
This allows components that do not render a replacable DOM element with an ID
to choose an alternative component, like a parent.

Called when visiting the component during optimized partial page encoding so that the
component can modify what is actually encoded. For example tab controls often
render the tabs for the ShowDetailItems in the tab bar before delegating to the
disclosed ShowDetailItem to render the tab content. As a result, the tab control
needs to encode its tab bar if any of its ShowDetailItems are partial targets so that
the tab labels, for example, are up-to-date.

The default implementation delegates to the CoreRenderer if this component has one, otherwise
it calls the VisitCallback and returns its result if this UIXComponent is a partial
target of the current encoding.

Parameters:

visitContext - VisitContext to pass to the VisitCallback

partialContext - PartialPageContext for the current partial encoding

callback - VisitCallback to call if this component is a partial target

setupEncodingContext

The default implementation delegates to
CoreRenderer.setupEncodingContext and then calls
setupVisitingContext

If a subclass overrides this method, it should override
tearDownEncodingContext as well.

It is guaranteed that if setUpEncodingContext completes
tearDownEncodingContext will be called for this component

During partial page rendering traversals, setupEncodingContext is not called
before the VisitCallback is invoked. This behavior is different than for
setupVisitingContext, which is always called before the VisitCallback
is invoked for non-partial page rendering visits. This difference in behavior allows the
VisitCallback in a partial page rendering visit to safely call
UIComponent.encodeAll, which in the case of a UIXComponent, will call
UIXComponent.setupEncodeContext.

addAttributeChangeListener

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.

removeAttributeChangeListener

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.

setAttributeChangeListener

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.

getAttributeChangeListener

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.

getContainerClientId

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.

getLogicalParent

public javax.faces.component.UIComponent getLogicalParent()

Provides a logical parent for this component (a parent in the context of the document where this component was
defined). The default implementation will simply call getParent(). Components that get relocated during
tag execution will return their original parent

Returns:

logical parent component

getLogicalParent

Provides a logical parent for the component (a parent in the context of the document where the component was
defined). The default implementation will simply call getParent() on the component. Components that get relocated during
tag execution should have their original parent returned (if available).

Parameters:

component - - child component whose parent is being retrieved

Returns:

logical parent component

getStateHelper

protected javax.faces.component.StateHelper getStateHelper()

We are using FacesBean to save state, which does not implement StateHelper, so
calling this method will call UnsupportedOperationException