Two other ideas ...
#1: Call the enum class Order. I think Order.ASCENDING would be
readable and intuitive.
#2: Keep it something more descriptive like OrderingDirection, but in
the Ordering class have a "public static final OrderingDirection
ASCENDING = OrderingDirection.ASCENDING;". Then you could reference
Ordering.ASCENDING (kind of like Ordering.ASC). This seems awkward,
though, but makes it similar to what is already there.
mrg
On Wed, Sep 23, 2009 at 10:55 AM, Andrus Adamchik
<andru..bjectstyle.org> wrote:
>
> Yeah, I never use it at all.
>
>
> On Sep 23, 2009, at 5:44 PM, Michael Gentry wrote:
>
>> BTW, I'm a little iffy on the static import stuff. It seems less
>> explicit and somewhat cheating to me, but I'm just tossing the idea
>> out for feedback.
>>
>>
>> On Wed, Sep 23, 2009 at 10:40 AM, Michael Gentry <mgentr..asslight.net>
>> wrote:
>>>
>>> If wanting to keep things shorter, couldn't you do a static import?
>>> I'm a little rusty on the syntax, but wouldn't it be something like:
>>>
>>> import static ...query.QueryDirection.*;
>>>
>>> Ordering ordering = new Ordering("artistName", ASCENDING);
>>>
>>> Hmm, or maybe that only works for static constants and not enums. I'd
>>> have to test that.
>>>
>>> mrg
>>>
>>>
>>> On Wed, Sep 23, 2009 at 10:34 AM, Andrus Adamchik
>>> <andru..bjectstyle.org> wrote:
>>>>
>>>> +1
>>>>
>>>> If we can do clean gradual deprecation of the old API. Also I like us
>>>> using
>>>> ASCENDING instead of ASC, as you proposed, but wonder if we can call
>>>> OrderingDirection something shorter, just to keep things tight.
>>>>
>>>> Another candidate for such refactoring is PersistenceState. Maybe create
>>>> a
>>>> "State" enum or "PersistentState"?
>>>>
>>>> Andrus
>>>>
>>>> On Sep 23, 2009, at 5:24 PM, Michael Gentry wrote:
>>>>
>>>>> Should we add more enums to the code? For example, in Ordering.java,
>>>>> there are these constants:
>>>>>
>>>>> public static final boolean ASC = true;
>>>>> public static final boolean DESC = false;
>>>>>
>>>>> However, there is no enum to represent the options. The constructors
>>>>> look
>>>>> like:
>>>>>
>>>>> public Ordering(String sortPathSpec, boolean ascending) ...
>>>>>
>>>>> There is nothing to encourage/enforce the usage of the constants, so
>>>>> you tend to see "true" and "false" being used. Even in our
>>>>> documentation:
>>>>>
>>>>> http://cayenne.apache.org/doc/using-orderings.html
>>>>>
>>>>> query.addOrdering("artistName", true);
>>>>> Ordering ordering = new Ordering("artistName", true);
>>>>>
>>>>> To the new (or even experienced) user, seeing "true" there tends to
>>>>> have no meaning. I (and some of the people I've been showing Cayenne
>>>>> to here) would rather see something like:
>>>>>
>>>>> Ordering ordering = new Ordering("artistName",
>>>>> OrderingDirection.ASCENDING);
>>>>>
>>>>> One guy even suggested something like:
>>>>>
>>>>> Ordering ordering = new AscendingOrdering("artistName");
>>>>>
>>>>> That is more concise and still explicit, but would obviously require
>>>>> even more code changes (probably). Especially when adding the case
>>>>> insensitive stuff.
>>>>>
>>>>> Thoughts?
>>>>>
>>>>> Thanks!
>>>>>
>>>>> mrg
>>>>>
>>>>
>>>>
>>>
>>
>
>
This archive was generated by hypermail 2.0.0 : Wed Sep 23 2009 - 11:10:44 EDT