Use CollationKeys when sorting text. Fixes issue 738
This commit is contained in:
parent
678375915a
commit
b91fc8a2b1
@ -75,6 +75,13 @@ abstract public class Criterion {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// TODO: We'd like things to be more strongly typed a la the following, but
|
||||
// it's too involved to change right now
|
||||
// abstract public class Key implements Comparable<Key> {
|
||||
// abstract public int compareTo(Key key);
|
||||
// }
|
||||
|
||||
abstract public class KeyMaker {
|
||||
public Object makeKey(Project project, Record record) {
|
||||
Object error = null;
|
||||
|
@ -33,6 +33,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
package com.google.refine.sorting;
|
||||
|
||||
import java.text.CollationKey;
|
||||
import java.text.Collator;
|
||||
|
||||
import org.json.JSONException;
|
||||
@ -71,12 +72,12 @@ public class StringCriterion extends Criterion {
|
||||
@Override
|
||||
protected Object makeKey(Object value) {
|
||||
return (ExpressionUtils.isNonBlankData(value) && !(value instanceof String)) ?
|
||||
value.toString() : value;
|
||||
collator.getCollationKey(value.toString()) : value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareKeys(Object key1, Object key2) {
|
||||
return collator.compare(key1, key2);
|
||||
return ((CollationKey)key1).compareTo((CollationKey)key2);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user