package strength;

/*
 * Note: this class implements Comparable in a peculiar way. One is supposed
 * to call the compareTo() method only on two instances of the same subclass.
 * For instance, if o1 and o2 are instances of PairRanking, the
 * comparison o1.compareTo(o2) will work.
 * But if o1 is an instance of PairRanking and o2 is an instance
 * of StraightRanking, then o1.compareTo(o2) will throw a ClassCastException. 
 */
public abstract class PokerHandRanking implements Comparable<PokerHandRanking> {

	public final PokerHandKind handKind;

	public PokerHandRanking(final PokerHandKind handKind) {
		this.handKind = handKind;
	}
	
}

@@ -426,17 +426,138 @@
 ception.
- 
+%0D%0A * %0D%0A * Also, while this class defines a natural ordering for itself, this ordering%0D%0A * is not consistent with equals().
 %0D%0A */%0D%0Ap
@@ -771,14 +771,332 @@
 d;%0D%0A
-
 %09%7D%0D%0A%09%0D%0A
+%09/**%0D%0A%09 * Only call this method to compare objects of the same type.%0D%0A%09 * Otherwise a ClassCastException will be raised.%0D%0A%09 * %0D%0A%09 * To compare two Poker-Hand-Rankings of different classes, use%0D%0A%09 * a %7B@link PokerHandComparator%7D.%0D%0A%09 */%0D%0A%09@Override%0D%0A%09@Deprecated%0D%0A%09public abstract int compareTo(PokerHandRanking h);%0D%0A%09%0D%0A
 %7D%0D%0A

Add some comments and warnings about the peculiar PokerHandRanking#compareTo()