I access my *data* objects all the time in Tapestry templates.  Things
such as firstName and lastName.  The point I was trying to make is if
setFirstName started returning the 'User' instance instead of 'void',
it could possibly break some libraries out there (such as whatever
Tapestry uses to process t:value="person.firstName"), which would be
bad.  Even if we tested Tapestry's accessors, there is no guarantee it
wouldn't break some other framework.

I never access my query objects directly in the template; I was mainly
talking about data objects and do we extend chainability to them.

Thanks,

mrg


On Thu, Oct 9, 2014 at 9:32 PM, Robert Zeigler
<robert.zeig...@roxanemy.com> wrote:
> It would only break tapestry of you were accessing properties of your query 
> object from your template or via property expressions in bindings. So if your 
> component had a limit property that was bound to the query's limit, then that 
> might break.
>
> GATAATGCTATTTCTTTAATTTTCGAA
>
>> On Oct 9, 2014, at 2:08 PM, Michael Gentry <mgen...@masslight.net> wrote:
>>
>> Yeah, I don't know if changing setXyz to *not* return 'void' would
>> break things (like Tapestry).  That would be a huge downer.
>>
>>> On Thu, Oct 9, 2014 at 3:03 PM, Andrus Adamchik <and...@objectstyle.org> 
>>> wrote:
>>> I thought of that. Unfortunately "setXyz" is a 'java bean' setter, so we'll 
>>> be redefining one of the most established Java conventions.
>>>
>>> Andrus
>>>
>>>> On Oct 9, 2014, at 2:51 PM, Michael Gentry <mgen...@masslight.net> wrote:
>>>>
>>>> I don't know if it will be confusing or not.  At least with the
>>>> current method names, I can type query.set[ctrl+space] and let Eclipse
>>>> give me a list of set* method names to choose from (same applies for
>>>> get*), but that option won't be available with the new chainable API.
>>>> Part of me thinks just make setFetchLimit() return 'this' (at least
>>>> where it makes sense to preserve existing API):
>>>>
>>>> query.setFetchLimit(100).setDistinct(true);
>>>>
>>>> You could continue that in the model objects, too:
>>>>
>>>> person.setFirstName("John").setLastName("Doe");
>>>>
>>>> mrg
>>>>
>>>>
>>>>> On Thu, Oct 9, 2014 at 1:31 PM, Andrus Adamchik <and...@objectstyle.org> 
>>>>> wrote:
>>>>>
>>>>>> On Oct 7, 2014, at 9:30 PM, Michael Gentry <mgen...@masslight.net> wrote:
>>>>>>
>>>>>> On Tue, Oct 7, 2014 at 6:44 PM, Aristedes Maniatis <a...@maniatis.org> 
>>>>>> wrote:
>>>>>>>> That said, if returning this is the direction we're going, then really 
>>>>>>>> all
>>>>>>>> the currently void methods in SelectQuery should do the same thing - 
>>>>>>>> like
>>>>>>>> addOrdering for example.
>>>>>>>
>>>>>>>
>>>>>>> Correct, but we also need to gracefully deprecate the old methods and 
>>>>>>> make new fluent ones.
>>>>>>
>>>>>> I was looking at the changes and was wondering if we really need to
>>>>>> deprecate the old methods.  Can't setFetchLimit() live along with
>>>>>> limit()?
>>>>>
>>>>> I suspect having both will be rather confusing. Initially I even wanted 
>>>>> to leave SelectQuery alone and implement all the new ideas in a separate 
>>>>> query class (ObjectQuery?), but since we've already made a bunch of 
>>>>> changes to SelectQuery in the same direction, I ended up with a massive 
>>>>> change to the existing class.
>>>>>
>>>>> Andrus
>>>

Reply via email to