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