api/jar/src/main/java/javax/slee/ComponentID.java
protected final int compareTo(String thisClassName, ComponentID that) {
        int typeComparison = thisClassName.compareTo(that.getClassName());
        if (typeComparison != 0) return typeComparison;

        int nameComparison = this.name.compareTo(that.name);
        if (nameComparison != 0) return nameComparison;

        int vendorComparison = this.vendor.compareTo(that.vendor);
        if (vendorComparison != 0) return vendorComparison;

        return this.version.compareTo(that.version);
    }
protected final int compareTo(String thisClassName, ComponentID that) {
        int typeComparison = thisClassName.compareTo(that.getClassName());
        if (typeComparison != 0) return typeComparison;

        int nameComparison = this.name.compareTo(that.name);
        if (nameComparison != 0) return nameComparison;

        int vendorComparison = this.vendor.compareTo(that.vendor);
        if (vendorComparison != 0) return vendorComparison;

        return this.version.compareTo(that.version);
    }
Compare this component identifier with the specified component identifier
for order.  Returns a negative integer, zero, or a positive integer if this
object is less than, equal to, or greater than the specified object.
<p>
Component ordering is determined by comparing the component identifier
attributes in the following order:
<ol>
<li>component type (nb. any subclass of <code>ComponentID</code> may
be safely compared without causing a <code>ClassCastException</code>)
<li>component name
<li>component vendor
<li>component version
</ol>
@param thisClassName the class name of this component identifier.
@param that the component identifier to compare this with.
@return a negative integer, zero, or a positive integer if this component
identifier is considered less than, equal to, or greater than the
specified object.
@see Comparable#compareTo(Object)