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 <h...@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 <and...@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 <h...@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 > > > >