code: @Override
  	public final int compareTo(final Id that)
  	{
  		if (!that.getClass().equals(this.getClass()))
  		{
  			throw new ClassCastException("Incomparable Id types: " + that.getClass() + " being compared to " + this.getClass());
  		}
  		else
  		{
  			return this.id.compareTo(that.id);
  		}
  	}
docs: Compares another Id to this id. Two ids are only comparable if they have the exact same type: if their types are
  incompatible then a ClassCastException will be thrown<br />
  If the types are comparable then the result is a case-sensitive comparison of the underlying id valued
  
  @see java.lang.Comparable#compareTo(java.lang.Object)