Hi,
my concern that stateful and transient component getters/setters look
different is not relevant to you?
I am just thinking that users might be confused.
best regards,
Martin
On 10/22/10, Blake Sullivan <blake.sullivan(a)oracle.com> wrote:
Since we can always add the TransientStateHelper later if we need
it,
we shouldn't have it in the specification for this release.
-- Blake Sullivan
On 10/22/10 4:25 AM, Andy Schwartz wrote:
> Hey Martin -
>
> Here is how I was thinking about this...
>
> With transient properties, we have two types of use cases:
>
> 1. Components storing transient attributes on themselves.
> 2. External classes storing transient attributes on components.
>
> The use case you mention below falls under #1.
>
> In earlier threads there were a references to use cases that fall
> under #2 (eg. a renderer setting a transient property on a component).
>
> If we go with the original API proposal of adding public methods to
> UIComponent, ie:
>
> - public Object getTransient(Object key)
> - public Object putTransient(Object key, Object value)
>
> We have everything we need to address #1 and #2. Your sample below
> can be rewritten as:
>
> Double getCalculatedWeight() {
> return (Double) getTransient(PropertyKeys.weight, false);
> }
> void setCalculatedWeight(Double weight) {
> putTransient(PropertyKeys.weight, weight);
> }
>
> I don't see how adding a new TransientStateHelper contract improves
> this situation. That's not to say that we cannot do this. The first
> patch that I provided leaves TransientStateHelper in place. Just
> seems like added conceptual overhead that might not be necessary.
>
> Andy
>
>
> On 10/22/10 7:02 AM, Martin Marinschek wrote:
>> Hi Andy,
>>
>> maybe I am missing something here, but isn't the normal use-case for
>> this a new component which adds a transient attribute?
>>
>> something like: calculatedWeight. This should of course be exposed via
>> the API of the component - so there should be a:
>>
>> Double getCalculatedWeight();
>> void setCalculatedWeight(Double weight);
>>
>> And my point was that the implementation of these stateless getters
>> and setters should look similar to the stateful version.
>>
>> What I would do:
>>
>> Double getCalculatedWeight() {
>> return (Double) getTransientStateHelper().get(PropertyKeys.weight,
>> false);
>> }
>> void setCalculatedWeight(Double weight) {
>> getTransientStateHelper().put(PropertyKeys.weight, weight);
>> }
>>
>> Could TransientStateHelper not be an alternative implementation of the
>> StateHelper interface?
>>
>> best regards,
>>
>> Martin
>>
>
--
http://www.irian.at
Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German
Professional Support for Apache MyFaces