code: @Override
      public int compareTo(LibertyVersion o) {
          if (this.equals(o)) {
              return 0;
          }
          if (o == null) {
              throw new NullPointerException();
          }
          if (this.major < o.major) {
              return -1;
          } else if (this.major > o.major) {
              return 1;
          }
          if (this.minor < o.minor) {
              return -1;
          } else if (this.minor > o.minor) {
              return 1;
          }
          if (this.micro < o.micro) {
              return -1;
          } else if (this.micro > o.micro) {
              return 1;
          }
          if (this.qualifier < o.qualifier) {
              return -1;
          } else if (this.qualifier > o.qualifier) {
              return 1;
          }
  
          // Err everything was equal but equals returned false, don't think we can get here but return 0 anyway
          return 0;
      }
docs: {@inheritDoc}