FileDocCategorySizeDatePackage
StringEncoderComparator.javaAPI DocAndroid 1.5 API2629Wed May 06 22:41:10 BST 2009org.apache.commons.codec

StringEncoderComparator

public class StringEncoderComparator extends Object implements Comparator
Strings are comparable, and this comparator allows you to configure it with an instance of a class which implements StringEncoder. This comparator is used to sort Strings by an encoding scheme such as Soundex, Metaphone, etc. This class can come in handy if one need to sort Strings by an encoded form of a name such as Soundex.
author
Apache Software Foundation
version
$Id: StringEncoderComparator.java,v 1.14 2004/06/21 23:24:17 ggregory Exp $

Fields Summary
private StringEncoder
stringEncoder
Internal encoder instance.
Constructors Summary
public StringEncoderComparator()
Constructs a new instance.

        // no init.
    
public StringEncoderComparator(StringEncoder stringEncoder)
Constructs a new instance with the given algorithm.

param
stringEncoder the StringEncoder used for comparisons.

        this.stringEncoder = stringEncoder;
    
Methods Summary
public intcompare(java.lang.Object o1, java.lang.Object o2)
Compares two strings based not on the strings themselves, but on an encoding of the two strings using the StringEncoder this Comparator was created with. If an {@link EncoderException} is encountered, return 0.

param
o1 the object to compare
param
o2 the object to compare to
return
the Comparable.compareTo() return code or 0 if an encoding error was caught.
see
Comparable


        int compareCode = 0;

        try {
            Comparable s1 = (Comparable) ((Encoder) this.stringEncoder).encode(o1);
            Comparable s2 = (Comparable) ((Encoder) this.stringEncoder).encode(o2);
            compareCode = s1.compareTo(s2);
        } 
        catch (EncoderException ee) {
            compareCode = 0;
        }
        return compareCode;