docs: @Override
      public void apply(FaceletContext ctx, UIComponent parent) throws IOException
      {
          // only process if it's been created
          if (!ComponentHandler.isNew(parent))
          {
              return;
          }
          if (parent instanceof ValueHolder)
          {
              applyAttachedObject(ctx.getFacesContext(), parent);
          }
          else if (UIComponent.isCompositeComponent(parent))
          {
              if (getFor() == null)
              {
                  throw new TagException(_delegate.getTag(), "is nested inside a composite component"
                          + " but does not have a for attribute.");
              }
              FaceletCompositionContext mctx = FaceletCompositionContext.getCurrentInstance(ctx);
              mctx.addAttachedObjectHandler(parent, _delegate);
          }
          else
          {
              throw new TagException(_delegate.getTag(),
                      "Parent not composite component or an instance of ValueHolder: " + parent);
          }      
      }