Package org.h2.value

# Class CompareMode

java.lang.Object
org.h2.value.CompareMode

Direct Known Subclasses:
  `CompareModeDefault`, `CompareModeIcu4J`

public class CompareMode extends Object
Instances of this class can compare strings. Case sensitive and case insensitive comparison is supported, and comparison using a collator.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`CHARSET`
This constant means the charset specified should be used.
`static final String`
`DEFAULT`
This constant means the default collator should be used, even if ICU4J is in the classpath.
`static final String`
`ICU4J`
This constant means ICU4J should be used (this will fail if it is not in the classpath).
`static final String`
`OFF`
This constant means there is no collator set, and the default string comparison is to be used.

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`CompareMode(String name, int strength)`

## Method Summary

Modifier and Type
Method
Description
`int`
`compareString(String a, String b, boolean ignoreCase)`
Compare two strings.
`boolean`
`equals(Object obj)`
`boolean`
`equalsChars(String a, int ai, String b, int bi, boolean ignoreCase)`
Compare two characters in a string.
`static Locale[]`
`getCollationLocales(boolean onlyIfInitialized)`
Returns available locales for collations.
`static Collator`
`getCollator(String name)`
Get the collator object for the given language name or language / country combination.
`static CompareMode`
`getInstance(String name, int strength)`
Create a new compare mode with the given collator and strength.
`String`
`getName()`
`static String`
`getName(Locale l)`
Get the collation name.
`int`
`getStrength()`
`int`
`hashCode()`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### OFF

public static final String OFF
This constant means there is no collator set, and the default string comparison is to be used.

See Also:
  - Constant Field Values

### DEFAULT

public static final String DEFAULT
This constant means the default collator should be used, even if ICU4J is in the classpath.

See Also:
  - Constant Field Values

### ICU4J

public static final String ICU4J
This constant means ICU4J should be used (this will fail if it is not in the classpath).

See Also:
  - Constant Field Values

### CHARSET

public static final String CHARSET
This constant means the charset specified should be used. This will fail if the specified charset does not exist.

See Also:
  - Constant Field Values

## Constructor Details

### CompareMode

protected CompareMode(String name, int strength)

## Method Details

### getInstance

public static CompareMode getInstance(String name, int strength)
Create a new compare mode with the given collator and strength. If required, a new CompareMode is created, or if possible the last one is returned. A cache is used to speed up comparison when using a collator; CollationKey objects are cached.

Parameters:
  `name` - the collation name or null
  `strength` - the collation strength
Returns:
  the compare mode

### getCollationLocales

public static Locale[] getCollationLocales(boolean onlyIfInitialized)
Returns available locales for collations.

Parameters:
  `onlyIfInitialized` - if `true`, returns `null` when locales are not yet initialized
Returns:
  available locales for collations.

### equalsChars

public boolean equalsChars(String a, int ai, String b, int bi, boolean ignoreCase)
Compare two characters in a string.

Parameters:
  `a` - the first string
  `ai` - the character index in the first string
  `b` - the second string
  `bi` - the character index in the second string
  `ignoreCase` - true if a case-insensitive comparison should be made
Returns:
  true if the characters are equals

### compareString

public int compareString(String a, String b, boolean ignoreCase)
Compare two strings.

Parameters:
  `a` - the first string
  `b` - the second string
  `ignoreCase` - 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

### getName

public static String getName(Locale l)
Get the collation name.

Parameters:
  `l` - the locale
Returns:
  the name of the collation

### getCollator

public static Collator getCollator(String name)
Get the collator object for the given language name or language / country combination.

Parameters:
  `name` - the language name
Returns:
  the collator

### getName

public String getName()

### getStrength

public int getStrength()

### equals

public boolean equals(Object obj)

Overrides:
  `equals` in class `Object`

### hashCode

public int hashCode()

Overrides:
  `hashCode` in class `Object`