Change applied

https://issues.apache.org/jira/browse/TRINIDAD-916

On Jan 22, 2008 4:05 PM, Martin Marinschek <[EMAIL PROTECTED]>
wrote:

> well, then - if there is a valid reason in this case -
>
> I have seen other cases where such restrictions don't make sense.
>
> regards,
>
> Martin
>
>
> On Jan 22, 2008 11:36 PM, Andrew Robinson <[EMAIL PROTECTED]>
> wrote:
>
> > Usually I would completely agree, but in this case it may be valid. The
> > encodeEnd/Begin methods that don't use the FacesBean are setup in such a way
> > to use either encodeAll or encodeEnd (with the FacesBean). So I really don't
> > think people should be extending these methods.
> >
> > On Jan 22, 2008 3:27 PM, Martin Marinschek <[EMAIL PROTECTED]>
> > wrote:
> >
> > > what is the reason of having encodeEnd and encodeBegin final?
> > >
> > > I have never understood why Trinidad is trying to hide possibilities
> > > from the developer. Isn't it safe enough to say that renderers are not 
> > > part
> > > of the API, what you are doing there, might break with an update. Instead,
> > > everyone is forced by this into "compliance mode"... how strange.
> > >
> > > regards,
> > >
> > > Martin
> > >
> > >
> > > On Jan 22, 2008 10:24 PM, Andrew Robinson <[EMAIL PROTECTED]
> > > > wrote:
> > >
> > > > In the development of a library based on Trinidad, I need to have
> > > > some hooks in the renderer to improve performance. Specifically, I need 
> > > > to
> > > > setup a context and strip down a context for a component. Right now,
> > > > CoreRenderer.encodeEnd (FacesContext, UIComponent) is final, so I
> > > > cannot extend that method and the methods it calls I cannot reliably use
> > > > (see below).
> > > >
> > > > What I propose is:
> > > >
> > > > new methods on CoreRenderer:
> > > > protected void startComponent(FacesContext context, RenderingContext
> > > > context, UIComponent component, FacesBean bean) {}
> > > > protected void endComponent(FacesContext context, RenderingContext
> > > > context, UIComponent component, FacesBean bean) {}
> > > >
> > > > These methods would be invoked from within 
> > > > "CoreRenderer.encodeBegin(FacesContext,
> > > > UIComponent)" and " CoreRenderer.encodeEnd(FacesContext,
> > > > UIComponent)" respectively.
> > > >
> > > > The benefit is that someone creating a component framework on top or
> > > > Trinidad can extend the ability to setup and tear down settings when a
> > > > component is being rendered. In my case, I need to extend the skinning 
> > > > code
> > > > in a framework to enable certain functionality on a per-component basis 
> > > > from
> > > > within the skin and have this functionality global to all our renderers.
> > > >
> > > > You may ask "why not just extend encodeAll?". Well the problem is
> > > > that I have no idea when the child class will call this. For example:
> > > >
> > > >   protected void encodeAll(FacesContext context, RenderingContext
> > > > arc, UIComponent component, FacesBean bean) throws IOException
> > > >   {
> > > >     ... code
> > > >     super.encodeAll(context, arc, component, bean);
> > > >     ... code
> > > >   }
> > > >
> > > > As you can see, encodeAll doesn't give me the ability to have a hook
> > > > from the renderer class level for when the component starts and ends. It
> > > > doesn't make good OO code to have to manually code it in every one of 
> > > > our
> > > > renderers.
> > > >
> > > > I also see the reason in having the methods final, so would prefer
> > > > the hooks over removing the final keywords from encodeBegin and 
> > > > encodeEnd.
> > > >
> > > > Any objections to adding these 2 methods/hooks?
> > > >
> > > > If ppl. don't mind to respond quickly, I'll make the change if I get
> > > > some quick positive feedback and no negative feedback. This is a fairly 
> > > > high
> > > > priority feature that I need this for and cannot afford the 3 day vote
> > > > period.
> > > >
> > > > Thank you,
> > > > Andrew
> > > >
> > >
> > >
> > >
> > > --
> > >
> > > http://www.irian.at
> > >
> > > Your JSF powerhouse -
> > > JSF Consulting, Development and
> > > Courses in English and German
> > >
> > > Professional Support for Apache MyFaces
> >
> >
> >
>
>
> --
>
> http://www.irian.at
>
> Your JSF powerhouse -
> JSF Consulting, Development and
> Courses in English and German
>
> Professional Support for Apache MyFaces
>

Reply via email to