code: public static boolean isNewerThan(final Version left, final Version right) {
  
  	// major
  	if (left.getMajor() > right.getMajor()) return true;
  	if (left.getMajor() < right.getMajor()) return false;
  
  	// minor
  	if (left.getMinor() > right.getMinor()) return true;
  	if (left.getMinor() < right.getMinor()) return false;
  
  	// micro
  	if (left.getMicro() > right.getMicro()) return true;
  	if (left.getMicro() < right.getMicro()) return false;
  
  	// qualifier
  	// left
  	String q = left.getQualifier();
  	int index = q.indexOf('-');
  	String qla = index == -1 ? "" : q.substring(index + 1).trim();
  	String qln = index == -1 ? q : q.substring(0, index);
  	int ql = isEmpty(qln) ? Integer.MIN_VALUE : Integer.parseInt(qln);
  
  	// right
  	q = right.getQualifier();
  	index = q.indexOf('-');
  	String qra = index == -1 ? "" : q.substring(index + 1).trim();
  	String qrn = index == -1 ? q : q.substring(0, index);
  	int qr = isEmpty(qln) ? Integer.MIN_VALUE : Integer.parseInt(qrn);
  
  	if (ql > qr) return true;
  	if (ql < qr) return false;
  
  	int qlan = qualifierAppendix2Number(qla);
  	int qran = qualifierAppendix2Number(qra);
  
  	if (qlan > qran) return true;
  	if (qlan < qran) return false;
  
  	if (qlan == QUALIFIER_APPENDIX_OTHER && qran == QUALIFIER_APPENDIX_OTHER) return left.compareTo(right) > 0;
  
  	return false;
      }
docs: check left value against right value
  
  @param left
  @param right
  @return returns if right is newer than left