Package org.h2.value
Class CompareModeDefault
- java.lang.Object
-
- org.h2.value.CompareMode
-
- org.h2.value.CompareModeDefault
-
- All Implemented Interfaces:
java.util.Comparator<Value>
public class CompareModeDefault extends CompareMode
The default implementation of CompareMode. It uses java.text.Collator.
-
-
Field Summary
Fields Modifier and Type Field Description private CompareModeDefault
caseInsensitive
private SmallLRUCache<java.lang.String,java.text.CollationKey>
collationKeys
private java.text.Collator
collator
-
Fields inherited from class org.h2.value.CompareMode
CHARSET, DEFAULT, ICU4J, OFF
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
CompareModeDefault(java.lang.String name, int strength)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
compareString(java.lang.String a, java.lang.String b, boolean ignoreCase)
Compare two strings.boolean
equalsChars(java.lang.String a, int ai, java.lang.String b, int bi, boolean ignoreCase)
Compare two characters in a string.private java.text.CollationKey
getKey(java.lang.String a)
-
Methods inherited from class org.h2.value.CompareMode
compare, compareLocaleNames, equals, getCollationLocales, getCollator, getInstance, getName, getName, getStrength, hashCode
-
-
-
-
Field Detail
-
collator
private final java.text.Collator collator
-
collationKeys
private final SmallLRUCache<java.lang.String,java.text.CollationKey> collationKeys
-
caseInsensitive
private volatile CompareModeDefault caseInsensitive
-
-
Method Detail
-
compareString
public int compareString(java.lang.String a, java.lang.String b, boolean ignoreCase)
Description copied from class:CompareMode
Compare two strings.- Overrides:
compareString
in classCompareMode
- Parameters:
a
- the first stringb
- the second stringignoreCase
- true if a case-insensitive comparison should be made- Returns:
- -1 if the first string is 'smaller', 1 if the second string is smaller, and 0 if they are equal
-
equalsChars
public boolean equalsChars(java.lang.String a, int ai, java.lang.String b, int bi, boolean ignoreCase)
Description copied from class:CompareMode
Compare two characters in a string.- Overrides:
equalsChars
in classCompareMode
- Parameters:
a
- the first stringai
- the character index in the first stringb
- the second stringbi
- the character index in the second stringignoreCase
- true if a case-insensitive comparison should be made- Returns:
- true if the characters are equals
-
getKey
private java.text.CollationKey getKey(java.lang.String a)
-
-