/** * Compares this object with the specified object for order. * Returns a negative integer, zero, or a positive integer * as this object is less than, equal to, or greater than the specified object. * * WARNING: this comparison assumes the rounds are in the same sequence. * This means that you CANNOT compare an ExitStep with a regular Step. * (I mean, you can, but you won't get meaningful results.) * * @param Round $round the round to compare to this one * @return int negative if this round comes before the given one; positive if it comes after; zero if they come at the same time (are the same) */ public function compareTo(Round $round) { $my_order = $this->step->order(); $their_order = $round->step->order(); if ($my_order == $their_order) { return $this->repetition - $round->repetition; } else { return $my_order - $their_order; } }