class Version implements Comparable<Version> {

  @Override
  public boolean equals(Object obj) {
    if (!(obj instanceof Version)) {
      return false;
    }
    Version dvi = (Version) obj;
    return this.major == dvi.major
        && this.minor == dvi.minor
        && this.patch == dvi.patch
        && this.buildNumber == dvi.buildNumber
        && Objects.equals(this.lcQualifier, dvi.lcQualifier);
  }

  public  Version(String version, int major, int minor, int patch, int buildNumber,
      String qualifier);

}