Class ConverterTagHandlerDelegate

java.lang.Object
jakarta.faces.view.facelets.TagHandlerDelegate
org.apache.myfaces.view.facelets.tag.faces.ConverterTagHandlerDelegate
All Implemented Interfaces:
AttachedObjectHandler, ValueHolderAttachedObjectHandler

public class ConverterTagHandlerDelegate extends TagHandlerDelegate implements ValueHolderAttachedObjectHandler
Handles setting a Converter instance on a ValueHolder. Will wire all attributes set to the Converter instance created/fetched. Uses the "binding" attribute for grabbing instances to apply attributes to.

Will only set/create Converter is the passed UIComponent's parent is null, signifying that it wasn't restored from an existing tree.

Since:
2.0
Version:
$Revision$ $Date$
Author:
Leonardo Uribe (latest modification by $Author$)
  • Constructor Details

    • ConverterTagHandlerDelegate

      public ConverterTagHandlerDelegate(ConverterHandler delegate)
  • Method Details

    • apply

      public void apply(FaceletContext ctx, UIComponent parent) throws IOException
      Set Converter instance on parent ValueHolder if it's not being restored.
      1. Cast to ValueHolder
      2. If "binding" attribute was specified, fetch/create and re-bind to expression.
      3. Otherwise, call createConverter.
      4. Call setAttributes(FaceletContext, Object) on Converter instance.
      5. Set the Converter on the ValueHolder
      6. If the ValueHolder has a localValue, convert it and set the value
      See ValueHolder See Converter See #createConverter(FaceletContext) See jakarta.faces.view.facelets.FaceletHandler#apply(jakarta.faces.view.facelets.FaceletContext, jakarta.faces.component.UIComponent)
      Specified by:
      apply in class TagHandlerDelegate
      Throws:
      IOException
    • createConverter

      protected Converter createConverter(FaceletContext ctx)
      Create a Converter instance
      Parameters:
      ctx - FaceletContext to use
      Returns:
      Converter instance, cannot be null
    • createMetaRuleset

      public MetaRuleset createMetaRuleset(Class type)
      Specified by:
      createMetaRuleset in class TagHandlerDelegate
    • applyAttachedObject

      public void applyAttachedObject(FacesContext context, UIComponent parent)
      Specified by:
      applyAttachedObject in interface AttachedObjectHandler
    • getFor

      public String getFor()
      Specified by:
      getFor in interface AttachedObjectHandler