1 package com.atlassian.activeobjects.external;
2
3 public final class ModelVersion implements Comparable<ModelVersion> {
4 private final int version;
5
6 private ModelVersion(int version) {
7 this.version = version;
8 }
9
10 @Override
11 public int compareTo(ModelVersion mv) {
12 return version - mv.version;
13 }
14
15 public boolean isOlderThan(ModelVersion mv) {
16 return compareTo(mv) < 0;
17 }
18
19 public boolean isNewerThan(ModelVersion mv) {
20 return compareTo(mv) > 0;
21 }
22
23 public boolean isSame(ModelVersion mv) {
24 return compareTo(mv) == 0;
25 }
26
27 @Override
28 public String toString() {
29 return String.valueOf(version);
30 }
31
32 public static ModelVersion valueOf(String s) {
33 return s == null ? zero() : new ModelVersion(Integer.valueOf(s));
34 }
35
36 private static ModelVersion zero() {
37 return new ModelVersion(0);
38 }
39 }