Compares this partial with another returning an integer indicating the order.
The fields are compared in order, from largest to smallest. The first field that is non-equal is used to determine the result.
The specified object must be a partial instance whose field types match those of this partial.
NOTE: This implementation violates the Comparable contract. This method will accept any instance of ReadablePartial as input. However, it is possible that some implementations of ReadablePartial exist that do not extend AbstractPartial, and thus will throw a ClassCastException if compared in the opposite direction. The cause of this problem is that ReadablePartial doesn't define the compareTo() method, however we can't change that until v2.0.
@param partial an object to check against
@return negative if this is less, zero if equal, positive if greater
@throws ClassCastException if the partial is the wrong classor if it has field types that don't match
@throws NullPointerException if the partial is null