Package oracle.i18n.text
Class OraCollator
- java.lang.Object
-
- oracle.i18n.text.OraCollator
-
- All Implemented Interfaces:
Cloneable
,Comparator
public class OraCollator extends Object implements Cloneable, Comparator
TheOraCollator
class performs locale-sensitive string comparisons, including linguistic collation and binary sorting.- Since:
- Oracle 10.1.0.2
-
-
Field Summary
Fields Modifier and Type Field Description static int
CANONICAL_COMPOSITION
TheOraCollator
class composition level value.static int
EQUAL
The result of the comparison that theOraCollator
object returns if the two strings are equal.static int
GREATER
The result of the comparison that theOraCollator
object returns if the first string is greater than the second string.static int
LESS
The result of the comparison that theOraCollator
object returns if the first string is less than the second string.static int
NO_COMPOSITION
TheOraCollator
class composition level value.static int
PRIMARY
TheOraCollator
class strength value.static int
SECONDARY
TheOraCollator
class strength value.static int
TERTIARY
TheOraCollator
class strength value.
-
Constructor Summary
Constructors Modifier Constructor Description protected
OraCollator()
The constructor is here only for completeness.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description Object
clone()
Makes an independent duplicate of theOraCollator
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)
Returnstrue
if thisOraCollator
object is equal to another.String
getCharSet()
Gets thecharSet
name of thisOraCollator
object.OraCollationKey
getCollationKey(String source)
Gets theOraCollationKey
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 bygetInstance(Locale)
static OraCollator
getInstance(String sortRule)
Constructs anOraCollator
instance from the specifiedsortRule
value.static OraCollator
getInstance(String sortRule, String charSet)
Constructs anOraCollator
instance from the specifiedsortRule
value.static OraCollator
getInstance(Locale locale)
Constructs an Oracle collation object from the Java locale.static OraCollator
getInstance(Locale locale, String sortRule, String charSet)
Constructs anOraCollator
instance from the specifiedsortRule
value and locale.static OraCollator
getInstance(OraLocaleInfo oraLocale)
Constructs an Oracle collation object from anOraLocaleInfo
object.String
getName()
Gets the sorting rule name of thisOraCollator
object.int
getStrength()
Gets the strength used in comparisons.int
hashCode()
Creates a hash code for thisOraCollator
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.-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.util.Comparator
reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
-
-
-
-
Field Detail
-
PRIMARY
public static final int PRIMARY
TheOraCollator
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.- See Also:
setStrength(int)
,getStrength()
, Constant Field Values
-
SECONDARY
public static final int SECONDARY
TheOraCollator
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 .- See Also:
setStrength(int)
,getStrength()
, Constant Field Values
-
TERTIARY
public static final int TERTIARY
TheOraCollator
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.- See Also:
setStrength(int)
,getStrength()
, Constant Field Values
-
NO_COMPOSITION
public static final int NO_COMPOSITION
TheOraCollator
class composition level value. When the composition level set toNO_COMPOSITION
, canonical equivalence is not considered.- See Also:
setComposition(int)
,getComposition()
, Constant Field Values
-
CANONICAL_COMPOSITION
public static final int CANONICAL_COMPOSITION
TheOraCollator
class composition level value. When the composition level set toCANONICAL_COMPOSITION
, canonical equivalence is considered as the same.- See Also:
setComposition(int)
,getComposition()
, Constant Field Values
-
EQUAL
public static final int EQUAL
The result of the comparison that theOraCollator
object returns if the two strings are equal.- See Also:
- Constant Field Values
-
LESS
public static final int LESS
The result of the comparison that theOraCollator
object returns if the first string is less than the second string.- See Also:
- Constant Field Values
-
GREATER
public static final int GREATER
The result of the comparison that theOraCollator
object returns if the first string is greater than the second string.- See Also:
- Constant Field Values
-
-
Method Detail
-
getInstance
public static OraCollator getInstance()
Deprecated.As of Oracle Database 10g Release 2 (10.2), replaced bygetInstance(Locale)
Constructs an Oracle collation object from the default Java locale. Converts the default Java locale to theOraLocaleInfo
object using the default sorting rule.- Returns:
OraCollator
instance
-
getInstance
public static OraCollator getInstance(Locale locale)
Constructs an Oracle collation object from the Java locale. It converts the Java locale to Oracle locale and uses the result to get theOraCollator
object.- Parameters:
locale
- JavaLocale
object- Returns:
OraCollator
instance
-
getInstance
public static OraCollator getInstance(OraLocaleInfo oraLocale)
Constructs an Oracle collation object from anOraLocaleInfo
object. Retrieves the default collator associated with theOraLocaleInfo
object.- Parameters:
oraLocale
-OraLocaleInfo
object- Returns:
OraCollator
instance
-
getInstance
public static OraCollator getInstance(String sortRule)
Constructs anOraCollator
instance from the specifiedsortRule
value. ThesortRule
values are the same as NLSRTL's NLS_SORT names; for example,xgerman
,GENERIC_M
,unicode_binary
,binary
, etc.ai
orci
can be attached to sort rules to specify the comparison level.- Parameters:
sortRule
- Oracle sort rule name- Returns:
OraCollator
instance- Throws:
IllegalArgumentException
- if an invalid sort rule name is specified
-
getInstance
public static OraCollator getInstance(String sortRule, String charSet)
Constructs anOraCollator
instance from the specifiedsortRule
value. This method will take both Oracle sorting rule and "binary" assortRule
value. If using Oracle sorting rule, thecharSet
values will be ignored. If using binary sorting rule, thecharSet
value could be specified by a valid character set on the database server.ai
orci
can be attached to "binary" for specifying the comparison level.- Parameters:
sortRule
- Oracle sort rule namecharSet
- Oracle database character set, could benull
. The default is UTF16- Returns:
OraCollator
instance- Throws:
IllegalArgumentException
- if an invalid sort rule name is specified
-
getInstance
public static OraCollator getInstance(Locale locale, String sortRule, String charSet)
Constructs anOraCollator
instance from the specifiedsortRule
value and locale. This method will take both Oracle sorting rule and "binary" assortRule
value. If using Oracle sorting rule, thecharSet
values will be ignored. If using binary sorting rule, thecharSet
value could be specified by a valid character set on the database server.ai
orci
can be attached to "binary" for specifying the comparison level. It also records the locale information in the instance.- Parameters:
locale
- JavaLocale
objectsortRule
- Oracle sort rule namecharSet
- Oracle database character set, could benull
. The default is UTF16- Returns:
OraCollator
instance
-
getName
public String getName()
Gets the sorting rule name of thisOraCollator
object.- Returns:
- sorting rule name
-
getCharSet
public String getCharSet()
Gets thecharSet
name of thisOraCollator
object.- Returns:
- database character set
-
setStrength
public void setStrength(int newStrength)
Sets the strength used in comparisons. Strength could have the values ofPRIMARY
,SECONDARY
, orTERTIARY
.- Parameters:
newStrength
- the new strength to be set, options arePRIMARY
,SECONDARY
orTERTIARY
- Throws:
IllegalArgumentException
- if an invalid strength is specified- See Also:
PRIMARY
,SECONDARY
,TERTIARY
-
getStrength
public int getStrength()
Gets the strength used in comparisons. Strength could have the values ofPRIMARY
,SECONDARY
, orTERTIARY
.
-
setComposition
public void setComposition(int compositionMode)
Sets the composition level used for comparison. Composition level could be eitherCANONICAL_COMPOSITION
orNO_COMPOSITION
.- Parameters:
compositionMode
- the composition level to be set, options are eitherCANONICAL_COMPOSITION
orNO_COMPOSITION
- Throws:
IllegalArgumentException
- if an invalid composition mode is specified- See Also:
NO_COMPOSITION
,CANONICAL_COMPOSITION
-
getComposition
public int getComposition()
Gets the composition level used for comparison. Composition level could be eitherCANONICAL_COMPOSITION
orNO_COMPOSITION
.- Returns:
- the current composition level
- See Also:
NO_COMPOSITION
,CANONICAL_COMPOSITION
-
clone
public Object clone()
Makes an independent duplicate of theOraCollator
object.
-
hashCode
public int hashCode()
Creates a hash code for thisOraCollator
object based on sort rule, strength, and decomposition level.
-
equals
public boolean equals(Object obj)
Returnstrue
if thisOraCollator
object is equal to another.- Specified by:
equals
in interfaceComparator
- Overrides:
equals
in classObject
- Parameters:
obj
- a target object with which to be compared- Returns:
true
if equal orfalse
if not
-
compare
public int compare(Object source, Object target)
Compares two objects using the current collation rule. The comparison result depends on the sorting rule and the setting of comparison level.This implementation merely returns
compare((String)o1, (String)o2)
.- Specified by:
compare
in interfaceComparator
- Parameters:
source
- firstObject
to be comparedtarget
- secondObject
to be compared- Returns:
OraCollator.GREATER
,OraCollator.EQUAL
, orOraCollator.LESS
-
compare
public int compare(String source, String target)
Compares two strings using the current collation rule. The comparison result depends on the sorting rule and the setting of comparison level.- Parameters:
source
- firstString
to be comparedtarget
- secondString
to be compared- Returns:
OraCollator.GREATER
,OraCollator.EQUAL
, orOraCollator.LESS
-
getCollationKey
public OraCollationKey getCollationKey(String source)
Gets theOraCollationKey
object for a given source string.- Parameters:
source
- source string to get Oracle collation key- Returns:
OraCollationKey
object
-
matchFirst
public int[] matchFirst(String source, String pattern)
This method searches pattern string from the beginning of source string.- Parameters:
source
- source string as the target.pattern
- as pattern string.- Returns:
- If match found, return the first index(position) of source string to int[0] and the index of the last character matched plus one to int[1]. The returning index range is from 0 to n for the source string length of n. Return -1 to int[0] and int[1] if no match.
-
matchLast
public int[] matchLast(String source, String pattern)
This method searches pattern string from the end of source string.- Parameters:
source
- source string as the target.pattern
- as pattern string.- Returns:
- If match found, return the index(position) of source string to int[0] and the index of the last character matched plus one to int[1]. The returning index range is from 0 to n for the source string length of n. Return -1 to int[0] and int[1] if no match.
-
-