sortByIndex function

int sortByIndex(
  1. WordMarker a,
  2. WordMarker b
)

Used to sorts WordMarkers by their index, ascending.
If indexes are identical and marker types are different, the start marker comes first and the end marker comes second, making the resp. blocks intersect/overlap at that position.

Implementation

int sortByIndex(final WordMarker a, final WordMarker b) {
  final int compareResult = a.index.compareTo(b.index);

  if (compareResult == 0) {
    if (a.type == b.type) {
      return compareResult; // order does not matter
    } else if (a.type == MarkerType.start) {
      return 1; // end marker comes first
    } else {
      return -1; // start marker comes second
    }
  } else {
    return compareResult;
  }
}