private Version(int major, int minor, int bugfix, int prerelease) { this.major = major; this.minor = minor; this.bugfix = bugfix; this.prerelease = prerelease; // NOTE: do not enforce major version so we remain future proof, except to // make sure it fits in the 8 bits we encode it into: if (major > 255 || major < 0) { throw new IllegalArgumentException("Illegal major version: " + major); } if (minor > 255 || minor < 0) { throw new IllegalArgumentException("Illegal minor version: " + minor); } if (bugfix > 255 || bugfix < 0) { throw new IllegalArgumentException("Illegal bugfix version: " + bugfix); } if (prerelease > 2 || prerelease < 0) { throw new IllegalArgumentException("Illegal prerelease version: " + prerelease); } if (prerelease != 0 && (minor != 0 || bugfix != 0)) { throw new IllegalArgumentException("Prerelease version only supported with major release (got prerelease: " + prerelease + ", minor: " + minor + ", bugfix: " + bugfix + ")"); } encodedValue = major << 18 | minor << 10 | bugfix << 2 | prerelease; assert encodedIsValid(); }
private Version(int major, int minor, int bugfix, int prerelease) { this.major = major; this.minor = minor; this.bugfix = bugfix; this.prerelease = prerelease; // NOTE: do not enforce major version so we remain future proof, except to // make sure it fits in the 8 bits we encode it into: if (major > 255 || major < 0) { throw new IllegalArgumentException("Illegal major version: " + major); } if (minor > 255 || minor < 0) { throw new IllegalArgumentException("Illegal minor version: " + minor); } if (bugfix > 255 || bugfix < 0) { throw new IllegalArgumentException("Illegal bugfix version: " + bugfix); } if (prerelease > 2 || prerelease < 0) { throw new IllegalArgumentException("Illegal prerelease version: " + prerelease); } if (prerelease != 0 && (minor != 0 || bugfix != 0)) { throw new IllegalArgumentException("Prerelease version only supported with major release (got prerelease: " + prerelease + ", minor: " + minor + ", bugfix: " + bugfix + ")"); } encodedValue = major << 18 | minor << 10 | bugfix << 2 | prerelease; assert encodedIsValid(); }
private Version(int major, int minor, int bugfix, int prerelease) { this.major = major; this.minor = minor; this.bugfix = bugfix; this.prerelease = prerelease; // NOTE: do not enforce major version so we remain future proof, except to // make sure it fits in the 8 bits we encode it into: if (major > 255 || major < 0) { throw new IllegalArgumentException("Illegal major version: " + major); } if (minor > 255 || minor < 0) { throw new IllegalArgumentException("Illegal minor version: " + minor); } if (bugfix > 255 || bugfix < 0) { throw new IllegalArgumentException("Illegal bugfix version: " + bugfix); } if (prerelease > 2 || prerelease < 0) { throw new IllegalArgumentException("Illegal prerelease version: " + prerelease); } if (prerelease != 0 && (minor != 0 || bugfix != 0)) { throw new IllegalArgumentException("Prerelease version only supported with major release (got prerelease: " + prerelease + ", minor: " + minor + ", bugfix: " + bugfix + ")"); } encodedValue = major << 18 | minor << 10 | bugfix << 2 | prerelease; assert encodedIsValid(); }
private Version(int major, int minor, int bugfix, int prerelease) { this.major = major; this.minor = minor; this.bugfix = bugfix; this.prerelease = prerelease; // NOTE: do not enforce major version so we remain future proof, except to // make sure it fits in the 8 bits we encode it into: if (major > 255 || major < 0) { throw new IllegalArgumentException("Illegal major version: " + major); } if (minor > 255 || minor < 0) { throw new IllegalArgumentException("Illegal minor version: " + minor); } if (bugfix > 255 || bugfix < 0) { throw new IllegalArgumentException("Illegal bugfix version: " + bugfix); } if (prerelease > 2 || prerelease < 0) { throw new IllegalArgumentException("Illegal prerelease version: " + prerelease); } if (prerelease != 0 && (minor != 0 || bugfix != 0)) { throw new IllegalArgumentException("Prerelease version only supported with major release (got prerelease: " + prerelease + ", minor: " + minor + ", bugfix: " + bugfix + ")"); } encodedValue = major << 18 | minor << 10 | bugfix << 2 | prerelease; assert encodedIsValid(); }