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
> >
>
>

Reply via email to