/*
* Copyright (C) 2014 The Android Open Source Project
* Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
* (C) Copyright Taligent, Inc. 1996-1998 - All Rights Reserved
* (C) Copyright IBM Corp. 1996-1998 - All Rights Reserved
*
* The original version of this source code and documentation is copyrighted
* and owned by Taligent, Inc., a wholly-owned subsidiary of IBM. These
* materials are provided under terms of a License Agreement between Taligent
* and Sun. This technology is protected by multiple US and International
* patents. This notice and attribution to Taligent may not be removed.
* Taligent is a registered trademark of Taligent, Inc.
*
*/
package java.text;
import java.util.Locale;
import libcore.icu.ICU;
/**
* The Collator class performs locale-sensitive
* String comparison. You use this class to build
* searching and sorting routines for natural language text.
*
*
* Collator is an abstract base class. Subclasses
* implement specific collation strategies. One subclass,
* RuleBasedCollator, is currently provided with
* the Java Platform and is applicable to a wide set of languages. Other
* subclasses may be created to handle more specialized needs.
*
*
* Like other locale-sensitive classes, you can use the static
* factory method, getInstance, to obtain the appropriate
* Collator object for a given locale. You will only need
* to look at the subclasses of Collator if you need
* to understand the details of a particular collation strategy or
* if you need to modify that strategy.
*
*
* The following example shows how to compare two strings using
* the Collator for the default locale.
*
*
* // Compare two strings in the default locale
* Collator myCollator = Collator.getInstance();
* if( myCollator.compare("abc", "ABC") < 0 )
* System.out.println("abc is less than ABC");
* else
* System.out.println("abc is greater than or equal to ABC");
*
*
*
*
* You can set a Collator's strength property
* to determine the level of difference considered significant in
* comparisons. Four strengths are provided: PRIMARY,
* SECONDARY, TERTIARY, and IDENTICAL.
* The exact assignment of strengths to language features is
* locale dependant. For example, in Czech, "e" and "f" are considered
* primary differences, while "e" and "ě" are secondary differences,
* "e" and "E" are tertiary differences and "e" and "e" are identical.
* The following shows how both case and accents could be ignored for
* US English.
*
*
* //Get the Collator for US English and set its strength to PRIMARY
* Collator usCollator = Collator.getInstance(Locale.US);
* usCollator.setStrength(Collator.PRIMARY);
* if( usCollator.compare("abc", "ABC") == 0 ) {
* System.out.println("Strings are equivalent");
* }
*
*
*
* For comparing Strings exactly once, the compare
* method provides the best performance. When sorting a list of
* Strings however, it is generally necessary to compare each
* String multiple times. In this case, CollationKeys
* provide better performance. The CollationKey class converts
* a String to a series of bits that can be compared bitwise
* against other CollationKeys. A CollationKey is
* created by a Collator object for a given String.
*
* Note:CollationKeys from different
* Collators can not be compared. See the class description
* for {@link CollationKey}
* for an example using CollationKeys.
*
* @see RuleBasedCollator
* @see CollationKey
* @see CollationElementIterator
* @see Locale
* @author Helena Shih, Laura Werner, Richard Gillam
*/
public abstract class Collator
implements java.util.Comparator