|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--javax.faces.component.UIComponent
UIComponent is the base class for all user interface
components in JavaServer Faces. The set of UIComponent
instances
associated with a particular request and response are organized into a
component tree under a UIViewRoot
that represents
the entire content of the request or response.
For the convenience of component developers,
UIComponentBase
provides the default
behavior that is specified for a UIComponent
, and is the base class
for all of the concrete UIComponent
"base" implementations.
Component writers are encouraged to subclass
UIComponentBase
, instead of directly
implementing this abstract class, to reduce the impact of any future changes
to the method signatures.
Constructor Summary | |
UIComponent()
|
Method Summary | |
protected abstract void |
addFacesListener(javax.faces.event.FacesListener listener)
Add the specified FacesListener to the set of listeners
registered to receive event notifications from this UIComponent . |
abstract void |
broadcast(javax.faces.event.FacesEvent event)
Broadcast the specified FacesEvent to all registered
event listeners who have expressed an interest in events of this
type. |
abstract void |
decode(javax.faces.context.FacesContext context)
Decode any new state of this UIComponent from the
request contained in the specified FacesContext , and store
this state as needed. |
abstract void |
encodeBegin(javax.faces.context.FacesContext context)
If our rendered property is true ,
render the beginning of the current state of this
UIComponent to the response contained in the specified
FacesContext . |
abstract void |
encodeChildren(javax.faces.context.FacesContext context)
If our rendered property is true ,
render the child UIComponent s of this UIComponent . |
abstract void |
encodeEnd(javax.faces.context.FacesContext context)
If our rendered property is true ,
render the ending of the current state of this
UIComponent . |
abstract javax.faces.component.UIComponent |
findComponent(java.lang.String expr)
Search for and return the UIComponent with an id
that matches the specified search expression (if any), according to the
algorithm described below. |
abstract java.util.Map |
getAttributes()
Return a mutable Map representing the attributes
(and properties, see below) associated wth this UIComponent ,
keyed by attribute name (which must be a String). |
abstract int |
getChildCount()
Return the number of child UIComponent s that are
associated with this UIComponent . |
abstract java.util.List |
getChildren()
Return a mutable List representing the child
UIComponent s associated with this component. |
abstract java.lang.String |
getClientId(javax.faces.context.FacesContext context)
Return a client-side identifier for this component, generating one if necessary. |
protected abstract javax.faces.context.FacesContext |
getFacesContext()
Convenience method to return the FacesContext instance
for the current request. |
protected abstract javax.faces.event.FacesListener[] |
getFacesListeners(java.lang.Class clazz)
Return an array of registered FacesListener s that are
instances of the specified class. |
abstract javax.faces.component.UIComponent |
getFacet(java.lang.String name)
Convenience method to return the named facet, if it exists, or null otherwise. |
abstract java.util.Map |
getFacets()
Return a mutable Map representing the facet
UIComponent s associated with this UIComponent ,
keyed by facet name (which must be a String). |
abstract java.util.Iterator |
getFacetsAndChildren()
Return an Iterator over the facet followed by child
UIComponent s of this UIComponent . |
abstract java.lang.String |
getFamily()
Return the identifier of the component family to which this component belongs. |
abstract java.lang.String |
getId()
Return the component identifier of this UIComponent . |
abstract javax.faces.component.UIComponent |
getParent()
Return the parent UIComponent of this
UIComponent , if any. |
protected abstract javax.faces.render.Renderer |
getRenderer(javax.faces.context.FacesContext context)
Convenience method to return the Renderer instance
associated with this component, if any; otherwise, return
null . |
abstract java.lang.String |
getRendererType()
Return the Renderer type for this UIComponent
(if any). |
abstract boolean |
getRendersChildren()
Return a flag indicating whether this component is responsible for rendering its child components. |
abstract javax.faces.el.ValueBinding |
getValueBinding(java.lang.String name)
Return the ValueBinding used to calculate the value for the
specified attribute or property name, if any. |
abstract boolean |
isRendered()
Return true if this component (and its children)
should be rendered during the Render Response phase
of the request processing lifecycle. |
abstract void |
processDecodes(javax.faces.context.FacesContext context)
Perform the component tree processing required by the Apply Request Values phase of the request processing lifecycle for all facets of this component, all children of this component, and this component itself, as follows. |
abstract void |
processRestoreState(javax.faces.context.FacesContext context,
java.lang.Object state)
Perform the component tree processing required by the Restore View phase of the request processing lifecycle for all facets of this component, all children of this component, and this component itself, as follows. |
abstract java.lang.Object |
processSaveState(javax.faces.context.FacesContext context)
Perform the component tree processing required by the state saving portion of the Render Response phase of the request processing lifecycle for all facets of this component, all children of this component, and this component itself, as follows. |
abstract void |
processUpdates(javax.faces.context.FacesContext context)
Perform the component tree processing required by the Update Model Values phase of the request processing lifecycle for all facets of this component, all children of this component, and this component itself, as follows. |
abstract void |
processValidators(javax.faces.context.FacesContext context)
Perform the component tree processing required by the Process Validations phase of the request processing lifecycle for all facets of this component, all children of this component, and this component itself, as follows. |
abstract void |
queueEvent(javax.faces.event.FacesEvent event)
Queue an event for broadcast at the end of the current request processing lifecycle phase. |
protected abstract void |
removeFacesListener(javax.faces.event.FacesListener listener)
Remove the specified FacesListener from the set of listeners
registered to receive event notifications from this UIComponent . |
abstract void |
setId(java.lang.String id)
Set the component identifier of this UIComponent (if any). |
abstract void |
setParent(javax.faces.component.UIComponent parent)
Set the parent UIComponent of this
UIComponent . |
abstract void |
setRendered(boolean rendered)
Set the rendered property of this
UIComponent . |
abstract void |
setRendererType(java.lang.String rendererType)
Set the Renderer type for this UIComponent ,
or null for components that render themselves. |
abstract void |
setValueBinding(java.lang.String name,
javax.faces.el.ValueBinding binding)
Set the ValueBinding used to calculate the value for the
specified attribute or property name, if any. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface javax.faces.component.StateHolder |
isTransient, restoreState, saveState, setTransient |
Constructor Detail |
public UIComponent()
Method Detail |
public abstract java.util.Map getAttributes()
Return a mutable Map
representing the attributes
(and properties, see below) associated wth this UIComponent
,
keyed by attribute name (which must be a String). The returned
implementation must support all of the standard and optional
Map
methods, plus support the following additional
requirements:
Map
implementation must implement
the java.io.Serializable
interface.null
key or value must
throw a NullPointerException
.ClassCastException
.UIComponent
's implementation class, the following
methods will have special behavior:
containsKey
- Return false
.get()
- If the property is readable, call
the getter method and return the returned value (wrapping
primitive values in their corresponding wrapper classes);
otherwise throw IllegalArgumentException
.put()
- If the property is writeable, call
the setter method to set the corresponding value (unwrapping
primitive values in their corresponding wrapper classes).
If the property is not writeable, or an attempt is made to
set a property of primitive type to null
,
throw IllegalArgumentException
.remove
- Throw
IllegalArgumentException
.
public abstract javax.faces.el.ValueBinding getValueBinding(java.lang.String name)
Return the ValueBinding
used to calculate the value for the
specified attribute or property name, if any.
name
- Name of the attribute or property for which to retrieve a
ValueBinding
java.lang.NullPointerException
- if name
is null
public abstract void setValueBinding(java.lang.String name, javax.faces.el.ValueBinding binding)
Set the ValueBinding
used to calculate the value for the
specified attribute or property name, if any.
name
- Name of the attribute or property for which to set a
ValueBinding
binding
- The ValueBinding
to set, or null
to remove any currently set ValueBinding
java.lang.IllegalArgumentException
- if name
is one of
id
or parent
java.lang.NullPointerException
- if name
is null
public abstract java.lang.String getClientId(javax.faces.context.FacesContext context)
Return a client-side identifier for this component, generating
one if necessary. The associated Renderer
, if any,
will be asked to convert the clientId to a form suitable for
transmission to the client.
The return from this method must be the same value throughout
the lifetime of the instance, unless the id
property
of the component is changed, or the component is placed in
a NamingContainer
whose client ID changes (for example,
UIData
). However, even in these cases, consecutive
calls to this method must always return the same value.
context
- The FacesContext
for the current request
java.lang.NullPointerException
- if context
is null
public abstract java.lang.String getFamily()
Return the identifier of the component family to which this
component belongs. This identifier, in conjunction with the value
of the rendererType
property, may be used to select
the appropriate Renderer
for this component instance.
public abstract java.lang.String getId()
Return the component identifier of this UIComponent
.
public abstract void setId(java.lang.String id)
Set the component identifier of this UIComponent
(if any).
Component identifiers must obey the following syntax restrictions:
Component identifiers must also obey the following semantic
restrictions (note that this restriction is NOT
enforced by the setId()
implementation):
UIComponent
that is a NamingContainer
, or within
the scope of the entire component tree if there is no such
ancestor that is a NamingContainer
.
id
- The new component identifier, or null
to indicate
that this UIComponent
does not have a component identifier
java.lang.IllegalArgumentException
- if id
is not
syntactically validpublic abstract javax.faces.component.UIComponent getParent()
Return the parent UIComponent
of this
UIComponent
, if any.
public abstract void setParent(javax.faces.component.UIComponent parent)
Set the parent UIComponent
of this
UIComponent
. This method must
never be called by developers; a UIComponent
's internal
implementation will call it as components are added to or
removed from a parent's child List
or
facet Map
.
parent
- The new parent, or null
for the root node
of a component treepublic abstract boolean isRendered()
Return true
if this component (and its children)
should be rendered during the Render Response phase
of the request processing lifecycle.
public abstract void setRendered(boolean rendered)
Set the rendered
property of this
UIComponent
.
rendered
- If true
render this component;
otherwise, do not render this componentpublic abstract java.lang.String getRendererType()
Return the Renderer
type for this UIComponent
(if any).
public abstract void setRendererType(java.lang.String rendererType)
Set the Renderer
type for this UIComponent
,
or null
for components that render themselves.
rendererType
- Logical identifier of the type of
Renderer
to use, or null
for components
that render themselvespublic abstract boolean getRendersChildren()
Return a flag indicating whether this component is responsible
for rendering its child components. The default implementation
in UIComponentBase.getRendersChildren()
tries to find the
renderer for this component. If it does, it calls Renderer.getRendersChildren()
and returns the result. If it
doesn't, it returns false.
public abstract java.util.List getChildren()
Return a mutable List
representing the child
UIComponent
s associated with this component. The returned
implementation must support all of the standard and optional
List
methods, plus support the following additional
requirements:
List
implementation must implement
the java.io.Serializable
interface.null
must throw
a NullPointerExceptionUIComponent
must throw a ClassCastException.parent
property of the child must be set to this component instance.
If the parent
property of the child was already
non-null, the child must first be removed from its previous
parent (where it may have been either a child or a facet).parent
property of the child must be set to
null
.
public abstract int getChildCount()
Return the number of child UIComponent
s that are
associated with this UIComponent
. If there are no
children, this method must return 0. The method must not cause
the creation of a child component list.
public abstract javax.faces.component.UIComponent findComponent(java.lang.String expr)
Search for and return the UIComponent
with an id
that matches the specified search expression (if any), according to the
algorithm described below.
Component identifiers are required to be unique within the scope of
the closest ancestor NamingContainer
that encloses this
component (which might be this component itself). If there are no
NamingContainer
components in the ancestry of this component,
the root component in the tree is treated as if it were a
NamingContainer
, whether or not its class actually implements
the NamingContainer
interface.
A search expression consists of either an
identifier (which is matched exactly against the id
property of a UIComponent
, or a series of such identifiers
linked by the NamingContainer.SEPARATOR_CHAR
character value.
The search algorithm operates as follows:
UIComponent
that will be the base for searching,
by stopping as soon as one of the following conditions is met:
UIComponent
of the component
tree. The leading separator character will be stripped off,
and the remainder of the search expression will be treated as
a "relative" search expression as described below.UIComponent
is a
NamingContainer
it will serve as the basis.NamingContainer
is encountered, it will be the base.
NamingContainer
is encountered)
the root UIComponent
will be the base.id
that matches, within
the scope of the base component. The match is performed as follows:
id
property, and then recursively
through the facets and children of the base UIComponent
(except that if a descendant NamingContainer
is found,
its own facets and children are not searched).NamingContainer
by the rules in the
previous bullet point. Then, the findComponent()
method of this NamingContainer
will be called, passing
the remainder of the search expression.
expr
- Search expression identifying the UIComponent
to be returned
UIComponent
, or null
if the component was not found.
java.lang.IllegalArgumentException
- if an intermediate identifier
in a search expression identifies a UIComponent
that is
not a NamingContainer
java.lang.NullPointerException
- if expr
is null
public abstract java.util.Map getFacets()
Return a mutable Map
representing the facet
UIComponent
s associated with this UIComponent
,
keyed by facet name (which must be a String). The returned
implementation must support all of the standard and optional
Map
methods, plus support the following additional
requirements:
Map
implementation must implement
the java.io.Serializable
interface.null
key or value must
throw a NullPointerException.UIComponent
must throw a ClassCastException.UIComponent
is added:
parent
property of the component must be set to
this component instance.parent
property of the component was already
non-null, the component must first be removed from its previous
parent (where it may have been either a child or a facet).UIComponent
is removed:
parent
property of the facet must be
set to null
.
public abstract javax.faces.component.UIComponent getFacet(java.lang.String name)
Convenience method to return the named facet, if it exists, or
null
otherwise. If the requested facet does not
exist, the facets Map must not be created.
name
- Name of the desired facetpublic abstract java.util.Iterator getFacetsAndChildren()
Return an Iterator
over the facet followed by child
UIComponent
s of this UIComponent
.
Facets are returned in an undefined order, followed by
all the children in the order they are stored in the child list. If this
component has no facets or children, an empty Iterator
is returned.
The returned Iterator
must not support the
remove()
operation.
public abstract void broadcast(javax.faces.event.FacesEvent event) throws AbortProcessingException
Broadcast the specified FacesEvent
to all registered
event listeners who have expressed an interest in events of this
type. Listeners are called in the order in which they were
added.
event
- The FacesEvent
to be broadcast
AbortProcessingException
- Signal the JavaServer Faces
implementation that no further processing on the current event
should be performed
java.lang.IllegalArgumentException
- if the implementation class
of this FacesEvent
is not supported by this component
java.lang.NullPointerException
- if event
is
null
public abstract void decode(javax.faces.context.FacesContext context)
Decode any new state of this UIComponent
from the
request contained in the specified FacesContext
, and store
this state as needed.
During decoding, events may be enqueued for later processing
(by event listeners who have registered an interest), by calling
queueEvent()
.
context
- FacesContext
for the request we are processing
java.lang.NullPointerException
- if context
is null
public abstract void encodeBegin(javax.faces.context.FacesContext context) throws java.io.IOException
If our rendered
property is true
,
render the beginning of the current state of this
UIComponent
to the response contained in the specified
FacesContext
.
If a Renderer
is associated with this UIComponent
,
the actual encoding will be delegated to
Renderer.encodeBegin(FacesContext, UIComponent)
.
context
- FacesContext
for the response we are creating
java.io.IOException
- if an input/output error occurs while rendering
java.lang.NullPointerException
- if context
is null
public abstract void encodeChildren(javax.faces.context.FacesContext context) throws java.io.IOException
If our rendered
property is true
,
render the child UIComponent
s of this UIComponent
.
This method will only be called
if the rendersChildren
property is true
.
If a Renderer
is associated with this UIComponent
,
the actual encoding will be delegated to
Renderer.encodeBegin(FacesContext, UIComponent)
.
context
- FacesContext
for the response we are creating
java.io.IOException
- if an input/output error occurs while rendering
java.lang.NullPointerException
- if context
is null
public abstract void encodeEnd(javax.faces.context.FacesContext context) throws java.io.IOException
If our rendered
property is true
,
render the ending of the current state of this
UIComponent
.
If a Renderer
is associated with this UIComponent
,
the actual encoding will be delegated to
Renderer.encodeBegin(FacesContext, UIComponent)
.
context
- FacesContext
for the response we are creating
java.io.IOException
- if an input/output error occurs while rendering
java.lang.NullPointerException
- if context
is null
protected abstract void addFacesListener(javax.faces.event.FacesListener listener)
Add the specified FacesListener
to the set of listeners
registered to receive event notifications from this UIComponent
.
It is expected that UIComponent
classes acting as event sources
will have corresponding typesafe APIs for registering listeners of the
required type, and the implementation of those registration methods
will delegate to this method. For example:
public class FooEvent extends FacesEvent { ... } public interface FooListener extends FacesListener { public void processFoo(FooEvent event); } public class FooComponent extends UIComponentBase { ... public void addFooListener(FooListener listener) { addFacesListener(listener); } public void removeFooListener(FooListener listener) { removeFacesListener(listener); } ... }
listener
- The FacesListener
to be registered
java.lang.NullPointerException
- if listener
is null
protected abstract javax.faces.event.FacesListener[] getFacesListeners(java.lang.Class clazz)
Return an array of registered FacesListener
s that are
instances of the specified class. If there are no such registered
listeners, a zero-length array is returned. The returned
array can be safely be cast to an array strongly typed to
an element type of clazz
.
clazz
- Class that must be implemented by a FacesListener
for it to be returned
java.lang.IllegalArgumentException
- if class
is not,
and does not implement, FacesListener
java.lang.NullPointerException
- if clazz
is null
protected abstract void removeFacesListener(javax.faces.event.FacesListener listener)
Remove the specified FacesListener
from the set of listeners
registered to receive event notifications from this UIComponent
.
listener
- The FacesListener
to be deregistered
java.lang.NullPointerException
- if listener
is null
public abstract void queueEvent(javax.faces.event.FacesEvent event)
Queue an event for broadcast at the end of the current request
processing lifecycle phase. The default implementation in
UIComponentBase
must delegate this call to the
queueEvent()
method of the parent UIComponent
.
event
- FacesEvent
to be queued
java.lang.IllegalStateException
- if this component is not a
descendant of a UIViewRoot
java.lang.NullPointerException
- if event
is null
public abstract void processRestoreState(javax.faces.context.FacesContext context, java.lang.Object state)
Perform the component tree processing required by the Restore View phase of the request processing lifecycle for all facets of this component, all children of this component, and this component itself, as follows.
processRestoreState()
method of all
facets and children of this UIComponent
in the order
determined by a call to getFacetsAndChildren()
.restoreState()
method of this component.This method may not be called if the state saving method is set to server.
context
- FacesContext
for the request we are processing
java.lang.NullPointerException
- if context
is null
public abstract void processDecodes(javax.faces.context.FacesContext context)
Perform the component tree processing required by the Apply Request Values phase of the request processing lifecycle for all facets of this component, all children of this component, and this component itself, as follows.
rendered
property of this UIComponent
is false
, skip further processing.processDecodes()
method of all facets
and children of this UIComponent
, in the order determined
by a call to getFacetsAndChildren()
.decode()
method of this component.RuntimeException
is thrown during
decode processing, call FacesContext.renderResponse()
and re-throw the exception.
context
- FacesContext
for the request we are processing
java.lang.NullPointerException
- if context
is null
public abstract void processValidators(javax.faces.context.FacesContext context)
Perform the component tree processing required by the Process Validations phase of the request processing lifecycle for all facets of this component, all children of this component, and this component itself, as follows.
rendered
property of this UIComponent
is false
, skip further processing.processValidators()
method of all facets
and children of this UIComponent
, in the order determined
by a call to getFacetsAndChildren()
.
context
- FacesContext
for the request we are processing
java.lang.NullPointerException
- if context
is null
public abstract void processUpdates(javax.faces.context.FacesContext context)
Perform the component tree processing required by the Update Model Values phase of the request processing lifecycle for all facets of this component, all children of this component, and this component itself, as follows.
rendered
property of this UIComponent
is false
, skip further processing.processUpdates()
method of all facets
and children of this UIComponent
, in the order determined
by a call to getFacetsAndChildren()
.
context
- FacesContext
for the request we are processing
java.lang.NullPointerException
- if context
is null
public abstract java.lang.Object processSaveState(javax.faces.context.FacesContext context)
Perform the component tree processing required by the state saving portion of the Render Response phase of the request processing lifecycle for all facets of this component, all children of this component, and this component itself, as follows.
transient
property of this
component. If true, just return null
.processSaveState()
method of all
facets and children of this UIComponent
in the order
determined by a call to getFacetsAndChildren()
.saveState()
method of this component.This method may not be called if the state saving method is set to server.
context
- FacesContext
for the request we are processing
java.lang.NullPointerException
- if context
is null
protected abstract javax.faces.context.FacesContext getFacesContext()
Convenience method to return the FacesContext
instance
for the current request.
protected abstract javax.faces.render.Renderer getRenderer(javax.faces.context.FacesContext context)
Convenience method to return the Renderer
instance
associated with this component, if any; otherwise, return
null
.
context
- FacesContext
for the current request
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |