@Override public boolean equals(Object that) { if (this == that) { return true; } if (!(that instanceof SemVer)) { return false; } return compareTo((SemVer) that) == 0; }
public boolean hasNpmSnapshot() { return semVer != null && semVer.hasNpmSnapshot(); }
public boolean hasPreRelease() { return semVer != null && semVer.hasPreRelease(); }
Iterator<String> i2 = other.versions.iterator(); while (i1.hasNext() && i2.hasNext()) { int v = compareComp(i1.next(), i2.next()); if (v != 0) { return false; i2 = other.preRelease.iterator(); while (i1.hasNext() && i2.hasNext()) { int v = compareComp(i1.next(), i2.next()); if (v != 0) { return false;
@Override public int hashCode() { int c = product.hashCode(); if (semVer != null) { c = c * 37 + semVer.hashCode(); } return c; }
public boolean hasPrefix(ModuleId other) { if (!this.product.equals(other.product) || this.semVer == null) { return false; } else if (other.semVer != null) { return semVer.hasPrefix(other.semVer); } else { return true; } } }
@Override public String toString() { StringBuilder b = new StringBuilder(); b.append("module: "); b.append(product); if (semVer != null) { b.append(" "); b.append(semVer.toString()); } return b.toString(); }
public ModuleId(String s) { id = s; for (int i = 0; i < s.length() - 1; i++) { if (s.charAt(i) == '-' && Character.isDigit(s.charAt(i + 1))) { product = s.substring(0, i); semVer = new SemVer(s.substring(i + 1)); return; } } product = s; semVer = null; }
public SemVer(String v) { int offset = 0; offset = parseComp(v, true, offset, versions); if (offset == -1) { throw new IllegalArgumentException("missing major version: " + v); offset = parseComp(v, true, offset + 1, versions); if (offset == -1) { throw new IllegalArgumentException("missing version component"); offset = parseComp(v, false, offset + 1, preRelease); if (offset == -1) { throw new IllegalArgumentException("missing pre-release version component"); offset = parseComp(v, false, offset + 1, preRelease); if (offset == -1) { throw new IllegalArgumentException("missing pre-release version component");
int level = 4; // major returns +-4, minor +-3, patch +- 2, rest +-1. while (i1.hasNext() && i2.hasNext()) { int v = compareComp(i1.next(), i2.next()); if (v > 0) { return level; int v = compareComp(i1.next(), i2.next()); if (v > 0) { return 1;
@Override public int compareTo(ModuleId other) { int cmp = product.compareTo(other.product); if (cmp > 0) { return 5; // 4, 3, 2, 1 for major, minor, patch, rest } else if (cmp < 0) { return -5; // 4, 3, 2, 1 for major, minor, patch, rest } else if (semVer != null && other.semVer != null) { return semVer.compareTo(other.semVer); } else if (semVer != null && other.semVer == null) { return 4; } else if (semVer == null && other.semVer != null) { return -4; } else { return 0; } }