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 13:03:12 GMT
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/61738f56dad753da07040b0f44de7bf3f297c680

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