*/
package org.opendaylight.yangtools.concepts;
+import static com.google.common.base.Preconditions.checkArgument;
+
import com.google.common.annotations.Beta;
-import com.google.common.base.Preconditions;
import java.io.Serializable;
import java.util.Objects;
-import javax.annotation.Nonnull;
+import org.checkerframework.checker.index.qual.NonNegative;
+import org.eclipse.jdt.annotation.NonNull;
/**
* A single version according to <a href="http://semver.org/">Semantic Versioning</a>.
private final int patch;
private SemVer(final int major, final int minor, final int patch) {
- Preconditions.checkArgument(major >= 0);
+ checkArgument(major >= 0);
this.major = major;
- Preconditions.checkArgument(minor >= 0);
+ checkArgument(minor >= 0);
this.minor = minor;
- Preconditions.checkArgument(patch >= 0);
+ checkArgument(patch >= 0);
this.patch = patch;
}
- public static SemVer create(final int major) {
+ public static @NonNull SemVer create(final @NonNegative int major) {
return create(major, 0);
}
- public static SemVer create(final int major, final int minor) {
+ public static @NonNull SemVer create(final @NonNegative int major, final @NonNegative int minor) {
return create(major, minor, 0);
}
- public static SemVer create(final int major, final int minor, final int patch) {
+ public static @NonNull SemVer create(final @NonNegative int major, final @NonNegative int minor,
+ final @NonNegative int patch) {
return new SemVer(major, minor, patch);
}
- public static SemVer valueOf(@Nonnull final String str) {
+ public static @NonNull SemVer valueOf(final @NonNull String str) {
final int minorIdx = str.indexOf('.');
if (minorIdx == -1) {
return create(Integer.parseInt(str));
}
@Override
- public int compareTo(@Nonnull final SemVer other) {
+ public int compareTo(final SemVer other) {
int cmp = Integer.compare(major, other.major);
if (cmp == 0) {
cmp = Integer.compare(minor, other.minor);
@Override
public boolean equals(final Object obj) {
- if (this == obj) {
- return true;
- }
- if (!(obj instanceof SemVer)) {
- return false;
- }
-
- final SemVer o = (SemVer) obj;
- return major == o.major && minor == o.minor && patch == o.patch;
+ return this == obj || obj instanceof SemVer other && major == other.major && minor == other.minor
+ && patch == other.patch;
}
@Override