code: @Override
      public int compareTo(MessageVersion that) {
          if (that == null) {
              return 1;
          }
  
          Integer[] thisParts = getVersionParts();
          Integer[] thatParts = that.getVersionParts();
  
          int length = Math.max(thisParts.length, thatParts.length);
  
          for (int i = 0; i < length; i++) {
  
              int comp = getVersionPart(thisParts, i) - getVersionPart(thatParts, i);
  
              if (comp != 0) {
                  return comp;
              }
          }
          return 0;
      }
docs: ----- Comparable ------------------------------------------------------