Class UIComponent
- java.lang.Object
-
- jakarta.faces.component.UIComponent
-
- All Implemented Interfaces:
PartialStateHolder,StateHolder,TransientStateHolder,ComponentSystemEventListener,FacesListener,SystemEventListenerHolder,EventListener
- Direct Known Subclasses:
UIComponentBase
@JSFComponent(type="jakarta.faces.Component", family="jakarta.faces.Component", desc="abstract base component", configExcluded=true) public abstract class UIComponent extends Object implements PartialStateHolder, TransientStateHolder, SystemEventListenerHolder, ComponentSystemEventListenersee Javadoc of J SF Specification
-
-
Field Summary
Fields Modifier and Type Field Description static StringATTRS_WITH_DECLARED_DEFAULT_VALUESstatic StringBEANINFO_KEYConstant used in component attribute map to retrieve the BeanInfo of a composite component.static StringCOMPOSITE_COMPONENT_TYPE_KEYConstant used in BeanInfo descriptor as a key for retrieve an alternate component type for create the composite base component.static StringCOMPOSITE_FACET_NAMEConstant used to define the facet inside this component that store the component hierarchy generated by a composite component implementation, and then rendered.static StringFACETS_KEYThis constant has two usages.static StringVIEW_LOCATION_KEYConstant used in component attribute map to store theLocationobject where the definition of this component is.
-
Constructor Summary
Constructors Constructor Description UIComponent()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract voidaddFacesListener(FacesListener listener)abstract voidbroadcast(FacesEvent event)voidclearInitialState()abstract voiddecode(FacesContext context)voidencodeAll(FacesContext context)abstract voidencodeBegin(FacesContext context)abstract voidencodeChildren(FacesContext context)abstract voidencodeEnd(FacesContext context)abstract UIComponentfindComponent(String expr)abstract Map<String,Object>getAttributes()abstract intgetChildCount()abstract List<UIComponent>getChildren()StringgetClientId()abstract StringgetClientId(FacesContext context)static UIComponentgetCompositeComponentParent(UIComponent component)search for the nearest parent composite component, if no parent is found it has to return null! if the component itself is null we have to return null as well!StringgetContainerClientId(FacesContext ctx)static UIComponentgetCurrentComponent(FacesContext context)static UIComponentgetCurrentCompositeComponent(FacesContext context)protected abstract FacesContextgetFacesContext()protected abstract FacesListener[]getFacesListeners(Class clazz)abstract UIComponentgetFacet(String name)intgetFacetCount()abstract Map<String,UIComponent>getFacets()abstract Iterator<UIComponent>getFacetsAndChildren()abstract StringgetFamily()abstract StringgetId()List<SystemEventListener>getListenersForEventClass(Class<? extends SystemEvent> eventClass)UIComponentgetNamingContainer()abstract UIComponentgetParent()Returns the parent of the component.Map<String,Object>getPassThroughAttributes()Map<String,Object>getPassThroughAttributes(boolean create)protected abstract RenderergetRenderer(FacesContext context)abstract StringgetRendererType()abstract booleangetRendersChildren()Map<String,String>getResourceBundleMap()protected StateHelpergetStateHelper()protected StateHelpergetStateHelper(boolean create)returns a delta state saving enabled state helper for the current componentTransientStateHelpergetTransientStateHelper()TransientStateHelpergetTransientStateHelper(boolean create)jakarta.el.ValueExpressiongetValueExpression(String name)booleaninitialStateMarked()booleaninvokeOnComponent(FacesContext context, String clientId, ContextCallback callback)Invokes theinvokeContextCallbackmethod with the component, specified byclientId.static booleanisCompositeComponent(UIComponent component)booleanisInView()Indicate if this component is inside a view, or in other words is contained by an UIViewRoot instance (which represents the view).abstract booleanisRendered()protected booleanisVisitable(VisitContext context)This method indicates if a component is visitable according to the hints passed by the VisitContext parameter! This method internally is used by visitTree and if it returns false it short circuits the visitTree execution.voidmarkInitialState()voidpopComponentFromEL(FacesContext context)abstract voidprocessDecodes(FacesContext context)voidprocessEvent(ComponentSystemEvent event)abstract voidprocessRestoreState(FacesContext context, Object state)abstract ObjectprocessSaveState(FacesContext context)abstract voidprocessUpdates(FacesContext context)abstract voidprocessValidators(FacesContext context)voidpushComponentToEL(FacesContext context, UIComponent component)abstract voidqueueEvent(FacesEvent event)protected abstract voidremoveFacesListener(FacesListener listener)voidrestoreTransientState(FacesContext context, Object state)Restore the "transient state" using the object passed as state.ObjectsaveTransientState(FacesContext context)Return the object containing related "transient states".abstract voidsetId(String id)voidsetInView(boolean isInView)Define if the component is on the view or not.abstract voidsetParent(UIComponent parent)For JSF-framework internal use only.abstract voidsetRendered(boolean rendered)abstract voidsetRendererType(String rendererType)voidsetValueExpression(String name, jakarta.el.ValueExpression expression)voidsubscribeToEvent(Class<? extends SystemEvent> eventClass, ComponentSystemEventListener componentListener)voidunsubscribeFromEvent(Class<? extends SystemEvent> eventClass, ComponentSystemEventListener componentListener)booleanvisitTree(VisitContext context, VisitCallback callback)The visit tree method, visit tree walks over a subtree and processes the callback object to perform some operation on the subtree-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface jakarta.faces.component.StateHolder
isTransient, restoreState, saveState, setTransient
-
-
-
-
Field Detail
-
BEANINFO_KEY
public static final String BEANINFO_KEY
Constant used in component attribute map to retrieve the BeanInfo of a composite component.- See Also:
ViewDeclarationLanguage.getComponentMetadata(FacesContext, Resource),ViewDeclarationLanguage.retargetAttachedObjects(FacesContext, UIComponent, List),ViewDeclarationLanguage.retargetMethodExpressions(FacesContext, UIComponent),Application.createComponent(FacesContext, Resource), Constant Field Values
-
COMPOSITE_COMPONENT_TYPE_KEY
public static final String COMPOSITE_COMPONENT_TYPE_KEY
Constant used in BeanInfo descriptor as a key for retrieve an alternate component type for create the composite base component.
-
COMPOSITE_FACET_NAME
public static final String COMPOSITE_FACET_NAME
Constant used to define the facet inside this component that store the component hierarchy generated by a composite component implementation, and then rendered. In other words, note that direct children of a component are not rendered, instead components inside this face are rendered.- See Also:
- Constant Field Values
-
FACETS_KEY
public static final String FACETS_KEY
This constant has two usages. The first one is in component attribute map to identify the facet name under this component is child of its parent. The second one is on BeanInfo descriptor as a key for a Map<String, PropertyDescriptor> that contains metadata information defined by composite:facet tag and composite:implementation(because this one fills the facet referenced by COMPOSITE_FACET_NAME constant).- See Also:
- Constant Field Values
-
VIEW_LOCATION_KEY
public static final String VIEW_LOCATION_KEY
Constant used in component attribute map to store theLocationobject where the definition of this component is.- See Also:
- Constant Field Values
-
ATTRS_WITH_DECLARED_DEFAULT_VALUES
public static final String ATTRS_WITH_DECLARED_DEFAULT_VALUES
- See Also:
- Constant Field Values
-
-
Method Detail
-
getPassThroughAttributes
public Map<String,Object> getPassThroughAttributes(boolean create)
- Parameters:
create-- Returns:
- A
Mapinstance, ornull. - Since:
- 2.2
-
initialStateMarked
public boolean initialStateMarked()
- Specified by:
initialStateMarkedin interfacePartialStateHolder- Since:
- 2.0
-
invokeOnComponent
public boolean invokeOnComponent(FacesContext context, String clientId, ContextCallback callback) throws FacesException
Invokes theinvokeContextCallbackmethod with the component, specified byclientId.- Parameters:
context-FacesContextfor the current requestclientId- the id of the desiredUIComponentclazzcallback- Implementation of theContextCallbackto be called- Returns:
- has component been found ?
- Throws:
FacesException
-
isCompositeComponent
public static boolean isCompositeComponent(UIComponent component)
- Parameters:
component-- Returns:
- true if the component is a composite component otherwise false is returned
- Throws:
NullPointerException- if the component is null- Since:
- 2.0
-
isInView
public boolean isInView()
Indicate if this component is inside a view, or in other words is contained by an UIViewRoot instance (which represents the view). If this component is a UIViewRoot instance, the components "always" is on the view. By default it is false but for UIViewRoot instances is true.- Returns:
- Since:
- 2.0
-
isRendered
public abstract boolean isRendered()
-
markInitialState
public void markInitialState()
- Specified by:
markInitialStatein interfacePartialStateHolder
-
isVisitable
protected boolean isVisitable(VisitContext context)
This method indicates if a component is visitable according to the hints passed by the VisitContext parameter! This method internally is used by visitTree and if it returns false it short circuits the visitTree execution.- Parameters:
context-- Returns:
- Since:
- 2.0
-
setValueExpression
public void setValueExpression(String name, jakarta.el.ValueExpression expression)
-
getClientId
public String getClientId()
-
getClientId
public abstract String getClientId(FacesContext context)
-
getCompositeComponentParent
public static UIComponent getCompositeComponentParent(UIComponent component)
search for the nearest parent composite component, if no parent is found it has to return null! if the component itself is null we have to return null as well!- Parameters:
component- the component to start from- Returns:
- the parent composite component if found otherwise null
- Since:
- 2.0
-
getContainerClientId
public String getContainerClientId(FacesContext ctx)
- Since:
- 1.2
-
getCurrentComponent
public static UIComponent getCurrentComponent(FacesContext context)
- Parameters:
context-- Returns:
- Since:
- 2.0
-
getCurrentCompositeComponent
public static UIComponent getCurrentCompositeComponent(FacesContext context)
- Parameters:
context-- Returns:
- Since:
- 2.0
-
getFamily
public abstract String getFamily()
-
getId
public abstract String getId()
-
getListenersForEventClass
public List<SystemEventListener> getListenersForEventClass(Class<? extends SystemEvent> eventClass)
- Specified by:
getListenersForEventClassin interfaceSystemEventListenerHolder
-
getNamingContainer
public UIComponent getNamingContainer()
- Returns:
- Since:
- 2.0
-
setId
public abstract void setId(String id)
-
setInView
public void setInView(boolean isInView)
Define if the component is on the view or not.This value is set in the following conditions:
- Component / Facet added: if the parent isInView = true, set it to true and all their children or facets, otherwise take no action
- Component / Facet removed: if the parent isInView = false, set it to false and all their children or facets, otherwise take no action
- Parameters:
isInView-- Since:
- 2.0
-
setParent
public abstract void setParent(UIComponent parent)
For JSF-framework internal use only. Don't call this method to add components to the component tree. Useparent.getChildren().add(child)instead.
-
getParent
public abstract UIComponent getParent()
Returns the parent of the component. Children can be added to or removed from a component even if this method returns null for the child.
-
setRendered
public abstract void setRendered(boolean rendered)
-
getRendererType
public abstract String getRendererType()
-
setRendererType
public abstract void setRendererType(String rendererType)
-
getRendersChildren
public abstract boolean getRendersChildren()
-
getValueExpression
public jakarta.el.ValueExpression getValueExpression(String name)
-
getChildren
public abstract List<UIComponent> getChildren()
-
getChildCount
public abstract int getChildCount()
-
findComponent
public abstract UIComponent findComponent(String expr)
-
getFacets
public abstract Map<String,UIComponent> getFacets()
-
getFacet
public abstract UIComponent getFacet(String name)
-
getFacetsAndChildren
public abstract Iterator<UIComponent> getFacetsAndChildren()
-
broadcast
public abstract void broadcast(FacesEvent event) throws AbortProcessingException
- Throws:
AbortProcessingException
-
clearInitialState
public void clearInitialState()
- Specified by:
clearInitialStatein interfacePartialStateHolder- Since:
- 2.0
-
decode
public abstract void decode(FacesContext context)
-
encodeBegin
public abstract void encodeBegin(FacesContext context) throws IOException
- Throws:
IOException
-
encodeChildren
public abstract void encodeChildren(FacesContext context) throws IOException
- Throws:
IOException
-
encodeEnd
public abstract void encodeEnd(FacesContext context) throws IOException
- Throws:
IOException
-
encodeAll
public void encodeAll(FacesContext context) throws IOException
- Throws:
IOException
-
addFacesListener
protected abstract void addFacesListener(FacesListener listener)
-
getFacesListeners
protected abstract FacesListener[] getFacesListeners(Class clazz)
-
removeFacesListener
protected abstract void removeFacesListener(FacesListener listener)
-
queueEvent
public abstract void queueEvent(FacesEvent event)
-
processRestoreState
public abstract void processRestoreState(FacesContext context, Object state)
-
processDecodes
public abstract void processDecodes(FacesContext context)
-
processEvent
public void processEvent(ComponentSystemEvent event) throws AbortProcessingException
- Specified by:
processEventin interfaceComponentSystemEventListener- Throws:
AbortProcessingException
-
processValidators
public abstract void processValidators(FacesContext context)
-
processUpdates
public abstract void processUpdates(FacesContext context)
-
processSaveState
public abstract Object processSaveState(FacesContext context)
-
subscribeToEvent
public void subscribeToEvent(Class<? extends SystemEvent> eventClass, ComponentSystemEventListener componentListener)
-
unsubscribeFromEvent
public void unsubscribeFromEvent(Class<? extends SystemEvent> eventClass, ComponentSystemEventListener componentListener)
-
visitTree
public boolean visitTree(VisitContext context, VisitCallback callback)
The visit tree method, visit tree walks over a subtree and processes the callback object to perform some operation on the subtreethere are some details in the implementation which according to the spec have to be in place: a) before calling the callback and traversing into the subtree pushComponentToEL has to be called b) after the processing popComponentFromEL has to be performed to remove the component from the el
The tree traversal optimizations are located in the visit context and can be replaced via the VisitContextFactory in the faces-config factory section
- Parameters:
context- the visit context which handles the processing detailscallback- the callback to be performed- Returns:
- false if the processing is not done true if we can shortcut the visiting because we are done with everything
- Since:
- 2.0
-
getFacesContext
protected abstract FacesContext getFacesContext()
-
getRenderer
protected abstract Renderer getRenderer(FacesContext context)
-
getStateHelper
protected StateHelper getStateHelper()
-
getStateHelper
protected StateHelper getStateHelper(boolean create)
returns a delta state saving enabled state helper for the current component- Parameters:
create- if true a state helper is created if not already existing- Returns:
- an implementation of the StateHelper interface or null if none exists and create is set to false
-
getTransientStateHelper
public TransientStateHelper getTransientStateHelper()
-
getTransientStateHelper
public TransientStateHelper getTransientStateHelper(boolean create)
-
restoreTransientState
public void restoreTransientState(FacesContext context, Object state)
Description copied from interface:TransientStateHolderRestore the "transient state" using the object passed as state.
If the
stateargument isnullclear any previous transient state if any and return.- Specified by:
restoreTransientStatein interfaceTransientStateHolderstate- the object containing transient values
-
saveTransientState
public Object saveTransientState(FacesContext context)
Description copied from interface:TransientStateHolderReturn the object containing related "transient states". that could be used later to restore the "transient state".
- Specified by:
saveTransientStatein interfaceTransientStateHolder- Returns:
- object containing transient values
-
popComponentFromEL
public void popComponentFromEL(FacesContext context)
-
pushComponentToEL
public void pushComponentToEL(FacesContext context, UIComponent component)
-
getFacetCount
public int getFacetCount()
- Since:
- 1.2
-
-