cayenne-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Hugi Thordarson <h...@karlmenn.is>
Subject Re: Using Ordering to sort non-english strings in memory
Date Fri, 20 Jan 2017 18:47:03 GMT
Hi Michael,
that sounds sensible. Haven’t done that before though and not sure how to implement it.
Could you point me towards an example implementation?

Cheers,
- hugi


> On 20. jan. 2017, at 16:38, Michael Gentry <blacknext@gmail.com> wrote:
> 
> Hi Hugi,
> 
> Instead of a global/static variable, perhaps we could make it part of a
> custom ServerModule configuration?  That way you can create your
> ServerModule with the collation defaults you require, which would make it
> easier for a single application to have multiple ServerModules to support
> different languages.
> 
> Thanks,
> 
> mrg
> 
> 
> On Fri, Jan 20, 2017 at 8:03 AM, Hugi Thordarson <hugi@karlmenn.is> wrote:
> 
>> That would probably be ideal, since certain things like case sensitivity
>> and collations apply only to Strings. But since case sensitivity is already
>> a part of Ordering I propose the following solution. Quite simple, just
>> checks if the values are strings and if so, uses a collator specified
>> either per Ordering instance or globally:
>> 
>> https://github.com/godurkodi/cayenne/commit/61738f56dad753da07040b0f44de7b
>> f3f297c680
>> 
>> Any comment?
>> 
>> Cheers,
>> - hugi
>> 
>> 
>>> On 11. jan. 2017, at 22:42, Andrus Adamchik <andrus@objectstyle.org>
>> wrote:
>>> 
>>> I am +1 in principle. Just need to figure out a clean implementation
>> that can distinguish between String and other types of properties. Perhaps
>> the initial solution may be a "StringOrdering extends Ordering" that takes
>> the collator and overrides comparison method?
>>> 
>>> Andrus
>>> 
>>> 
>>>> On Jan 11, 2017, at 5:12 PM, Hugi Thordarson <hugi@karlmenn.is> wrote:
>>>> 
>>>> Hi all.
>>>> 
>>>> It looks like Cayenne's Ordering uses String.compareTo() when sorting
>> String values in memory using orderList() and orderedList() — and there
>> doesn’t seem to be any way to change that behaviour. This means sorting of
>> international strings in memory is somewhat broken.
>>>> 
>>>> Do you think it would be a good idea to add support for:
>>>> 
>>>> 1) Specifying a default java.text.Collator to use for new Ordering
>> instances.
>>>> 2) Specifying a java.text.Collator for an instance of Ordering.
>>>> 
>>>> What do you think?
>>>> 
>>>> Cheers,
>>>> - hugi
>>> 
>> 
>> 


Mime
View raw message