public class OraCollator extends Object implements Cloneable, Comparator
OraCollator
class performs locale-sensitive
string comparisons, including linguistic collation and
binary sorting.Modifier and Type | Field and Description |
---|---|
static int |
CANONICAL_COMPOSITION
The
OraCollator class composition level value. |
static int |
EQUAL
The result of the comparison that the
OraCollator object
returns if the two strings are equal. |
static int |
GREATER
The result of the comparison that the
OraCollator object
returns if the first string is greater than the second string. |
static int |
LESS
The result of the comparison that the
OraCollator object
returns if the first string is less than the second string. |
static int |
NO_COMPOSITION
The
OraCollator class composition level value. |
static int |
PRIMARY
The
OraCollator class strength value. |
static int |
SECONDARY
The
OraCollator class strength value. |
static int |
TERTIARY
The
OraCollator class strength value. |
Modifier | Constructor and Description |
---|---|
protected |
OraCollator()
The constructor is here only for completeness.
|
Modifier and Type | Method and Description |
---|---|
Object |
clone()
Makes an independent duplicate of the
OraCollator object. |
int |
compare(Object source,
Object target)
Compares two objects using the current collation rule.
|
int |
compare(String source,
String target)
Compares two strings using the current collation rule.
|
String |
convertToBaseLetter(String source) |
String |
convertToCaseFold(String source) |
boolean |
equals(Object obj)
Returns
true if this OraCollator object is equal
to another. |
String |
getCharSet()
Gets the
charSet name of this OraCollator object. |
OraCollationKey |
getCollationKey(String source)
Gets the
OraCollationKey object for a given source string. |
int |
getComposition()
Gets the composition level used for comparison.
|
static OraCollator |
getInstance()
Deprecated.
As of Oracle Database 10g Release 2 (10.2), replaced by
OraCollator.getInstance(Locale) |
static OraCollator |
getInstance(Locale locale)
Constructs an Oracle collation object from the Java locale.
|
static OraCollator |
getInstance(Locale locale,
String sortRule,
String charSet)
Constructs an
OraCollator instance from the specified
sortRule value and locale. |
static OraCollator |
getInstance(OraLocaleInfo oraLocale)
Constructs an Oracle collation object from an
OraLocaleInfo object. |
static OraCollator |
getInstance(String sortRule)
Constructs an
OraCollator instance from the specified
sortRule value. |
static OraCollator |
getInstance(String sortRule,
String charSet)
Constructs an
OraCollator instance from the specified
sortRule value. |
String |
getName()
Gets the sorting rule name of this
OraCollator object. |
int |
getStrength()
Gets the strength used in comparisons.
|
int |
hashCode()
Creates a hash code for this
OraCollator object based on
sort rule, strength, and decomposition level. |
int[] |
matchFirst(String source,
String pattern)
This method searches pattern string from the beginning of source string.
|
int[] |
matchLast(String source,
String pattern)
This method searches pattern string from the end of source string.
|
void |
setComposition(int compositionMode)
Sets the composition level used for comparison.
|
void |
setStrength(int newStrength)
Sets the strength used in comparisons.
|
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
comparing, comparing, comparingDouble, comparingInt, comparingLong, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
public static final int PRIMARY
OraCollator
class strength value. When set, only
primary differences are considered significant during
comparison. The assignment of strengths to language features is locale
dependant. For example, different base letters ("a" vs.
"b") are considered a primary difference. For
monolingual and binary sort, a primary setting means accent
insensitive.public static final int SECONDARY
OraCollator
class strength value. When set, only
secondary and higher-order differences are considered
significant during comparison. The assignment of strengths to language
features is locale dependant. For example, different
accented forms of the same base letter ("a" vs.
"â") are considered a secondary
difference. For monolingual and binary sort, a secondary
setting means case insensitive .public static final int TERTIARY
OraCollator
class strength value. When set, only
tertiary and higher-order differences are considered
significant during comparison. The assignment of strengths to language
features is locale dependant. For example, case differences
("a" vs. "A") are considered a tertiary difference.public static final int NO_COMPOSITION
OraCollator
class composition level value. When
the composition level set to NO_COMPOSITION
,
canonical equivalence is not considered.public static final int CANONICAL_COMPOSITION
OraCollator
class composition level value. When
the composition level set to CANONICAL_COMPOSITION
,
canonical equivalence is considered as the same.public static final int EQUAL
OraCollator
object
returns if the two strings are equal.public static final int LESS
OraCollator
object
returns if the first string is less than the second string.public static final int GREATER
OraCollator
object
returns if the first string is greater than the second string.protected OraCollator()
getInstance
method
should be used instead to create new OraCollator
objects.public static OraCollator getInstance()
OraCollator.getInstance(Locale)
OraLocaleInfo
object
using the default sorting rule.OraCollator
instancepublic static OraCollator getInstance(Locale locale)
OraCollator
object.locale
- Java Locale
objectOraCollator
instancepublic static OraCollator getInstance(OraLocaleInfo oraLocale)
OraLocaleInfo
object. Retrieves the default collator
associated with the OraLocaleInfo
object.oraLocale
- OraLocaleInfo
objectOraCollator
instancepublic static OraCollator getInstance(String sortRule)
OraCollator
instance from the specified
sortRule
value. The sortRule
values are the
same as NLSRTL's NLS_SORT names; for example, xgerman
,
GENERIC_M
, unicode_binary
,
binary
, etc. ai
or ci
can be
attached to sort rules to specify the comparison level.sortRule
- Oracle sort rule nameOraCollator
instanceIllegalArgumentException
- if an invalid sort rule name is
specifiedpublic static OraCollator getInstance(String sortRule, String charSet)
OraCollator
instance from the specified
sortRule
value. This method will take both Oracle sorting
rule and "binary" as sortRule
value. If using Oracle
sorting rule, the charSet
values will be ignored. If using
binary sorting rule, the charSet
value could be specified by
a valid character set on the database server. ai
or
ci
can be attached to "binary" for specifying the comparison
level.sortRule
- Oracle sort rule namecharSet
- Oracle database character set, could be
null
. The default is UTF16OraCollator
instanceIllegalArgumentException
- if an invalid sort rule name is
specifiedpublic static OraCollator getInstance(Locale locale, String sortRule, String charSet)
OraCollator
instance from the specified
sortRule
value and locale. This method will take both Oracle
sorting rule and "binary" as sortRule
value. If using Oracle
sorting rule, the charSet
values will be ignored. If
using binary sorting rule, the charSet
value could be
specified by a valid character set on the database server. ai
or ci
can be attached to "binary" for specifying the
comparison level. It also records the locale information in the instance.locale
- Java Locale
objectsortRule
- Oracle sort rule namecharSet
- Oracle database character set, could be
null
. The default is UTF16OraCollator
instancepublic String getName()
OraCollator
object.public String getCharSet()
charSet
name of this OraCollator
object.public void setStrength(int newStrength)
PRIMARY
, SECONDARY
, or TERTIARY
.newStrength
- the new strength to be set, options are
PRIMARY
, SECONDARY
or
TERTIARY
IllegalArgumentException
- if an invalid strength is specifiedOraCollator.PRIMARY
,
OraCollator.SECONDARY
,
OraCollator.TERTIARY
public int getStrength()
PRIMARY
, SECONDARY
, or TERTIARY
.OraCollator.PRIMARY
,
OraCollator.SECONDARY
,
OraCollator.TERTIARY
public void setComposition(int compositionMode)
CANONICAL_COMPOSITION
or
NO_COMPOSITION
.compositionMode
- the composition level to be
set, options are either CANONICAL_COMPOSITION
or
NO_COMPOSITION
IllegalArgumentException
- if an invalid composition mode is
specifiedOraCollator.NO_COMPOSITION
,
OraCollator.CANONICAL_COMPOSITION
public int getComposition()
CANONICAL_COMPOSITION
or
NO_COMPOSITION
.OraCollator.NO_COMPOSITION
,
OraCollator.CANONICAL_COMPOSITION
public Object clone()
OraCollator
object.public int hashCode()
OraCollator
object based on
sort rule, strength, and decomposition level.public boolean equals(Object obj)
true
if this OraCollator
object is equal
to another.equals
in interface Comparator
equals
in class Object
obj
- a target object with which to be comparedtrue
if equal or false
if notpublic int compare(Object source, Object target)
This implementation merely returns compare((String)o1,
(String)o2)
.
compare
in interface Comparator
source
- first Object
to be comparedtarget
- second Object
to be comparedOraCollator.GREATER
,
OraCollator.EQUAL
, or OraCollator.LESS
public int compare(String source, String target)
source
- first String
to be comparedtarget
- second String
to be comparedOraCollator.GREATER
,
OraCollator.EQUAL
, or OraCollator.LESS
public OraCollationKey getCollationKey(String source)
OraCollationKey
object for a given source string.source
- source string to get Oracle collation keyOraCollationKey
objectpublic int[] matchFirst(String source, String pattern)
source
- source string as the target.
pattern as pattern string.public int[] matchLast(String source, String pattern)
source
- source string as the target.
pattern as pattern string.