|
10 | 10 | * @author pesse |
11 | 11 | */ |
12 | 12 | public class Version implements Comparable<Version> { |
13 | | - private String origString; |
14 | | - private Integer major; |
15 | | - private Integer minor; |
16 | | - private Integer bugfix; |
17 | | - private Integer build; |
18 | | - private boolean valid = false; |
| 13 | + private final String origString; |
| 14 | + private final Integer major; |
| 15 | + private final Integer minor; |
| 16 | + private final Integer bugfix; |
| 17 | + private final Integer build; |
| 18 | + private final boolean valid; |
19 | 19 |
|
20 | 20 | public Version( String versionString ) { |
21 | 21 | assert versionString != null; |
22 | | - this.origString = versionString; |
23 | | - parseVersionString(); |
24 | | - } |
| 22 | + this.origString = versionString.trim(); |
25 | 23 |
|
26 | | - private void parseVersionString() |
27 | | - { |
28 | 24 | Pattern p = Pattern.compile("([0-9]+)\\.?([0-9]+)?\\.?([0-9]+)?\\.?([0-9]+)?"); |
29 | 25 |
|
30 | 26 | Matcher m = p.matcher(origString); |
31 | 27 |
|
| 28 | + Integer major = null; |
| 29 | + Integer minor = null; |
| 30 | + Integer bugfix = null; |
| 31 | + Integer build = null; |
| 32 | + boolean valid = false; |
| 33 | + |
32 | 34 | try { |
33 | 35 | if (m.find()) { |
34 | | - if ( m.group(1) != null ) |
| 36 | + if (m.group(1) != null ) |
35 | 37 | major = Integer.valueOf(m.group(1)); |
36 | | - if ( m.group(2) != null ) |
| 38 | + if (m.group(2) != null ) |
37 | 39 | minor = Integer.valueOf(m.group(2)); |
38 | | - if ( m.group(3) != null ) |
| 40 | + if (m.group(3) != null ) |
39 | 41 | bugfix = Integer.valueOf(m.group(3)); |
40 | | - if ( m.group(4) != null ) |
| 42 | + if (m.group(4) != null ) |
41 | 43 | build = Integer.valueOf(m.group(4)); |
42 | 44 |
|
43 | | - if ( major != null ) // We need a valid major version as minimum requirement for a Version object to be valid |
44 | | - valid = true; |
| 45 | + // We need a valid major version as minimum requirement for a Version object to be valid |
| 46 | + valid = major != null; |
45 | 47 | } |
46 | 48 | } |
47 | 49 | catch ( NumberFormatException e ) |
48 | 50 | { |
49 | 51 | valid = false; |
50 | 52 | } |
| 53 | + |
| 54 | + this.major = major; |
| 55 | + this.minor = minor; |
| 56 | + this.bugfix = bugfix; |
| 57 | + this.build = build; |
| 58 | + this.valid = valid; |
51 | 59 | } |
52 | 60 |
|
53 | 61 | @Override |
@@ -85,11 +93,11 @@ public String getNormalizedString() |
85 | 93 | StringBuilder sb = new StringBuilder(); |
86 | 94 | sb.append(String.valueOf(major)); |
87 | 95 | if ( minor != null ) |
88 | | - sb.append("." + String.valueOf(minor)); |
| 96 | + sb.append(".").append(String.valueOf(minor)); |
89 | 97 | if ( bugfix != null ) |
90 | | - sb.append("." + String.valueOf(bugfix)); |
| 98 | + sb.append(".").append(String.valueOf(bugfix)); |
91 | 99 | if ( build != null ) |
92 | | - sb.append("." + String.valueOf(build)); |
| 100 | + sb.append(".").append(String.valueOf(build)); |
93 | 101 |
|
94 | 102 | return sb.toString(); |
95 | 103 | } |
@@ -152,41 +160,29 @@ public boolean isGreaterOrEqualThan( Version v ) throws InvalidVersionException |
152 | 160 |
|
153 | 161 | versionsAreValid(v); |
154 | 162 |
|
155 | | - if ( compareTo(v) >= 0 ) |
156 | | - return true; |
157 | | - else |
158 | | - return false; |
| 163 | + return compareTo(v) >= 0; |
159 | 164 | } |
160 | 165 |
|
161 | 166 |
|
162 | 167 | public boolean isGreaterThan( Version v) throws InvalidVersionException |
163 | 168 | { |
164 | 169 | versionsAreValid(v); |
165 | 170 |
|
166 | | - if ( compareTo(v) > 0 ) |
167 | | - return true; |
168 | | - else |
169 | | - return false; |
| 171 | + return compareTo(v) > 0; |
170 | 172 | } |
171 | 173 |
|
172 | 174 | public boolean isLessOrEqualThan( Version v ) throws InvalidVersionException |
173 | 175 | { |
174 | 176 |
|
175 | 177 | versionsAreValid(v); |
176 | 178 |
|
177 | | - if ( compareTo(v) <= 0 ) |
178 | | - return true; |
179 | | - else |
180 | | - return false; |
| 179 | + return compareTo(v) <= 0; |
181 | 180 | } |
182 | 181 |
|
183 | 182 | public boolean isLessThan( Version v) throws InvalidVersionException |
184 | 183 | { |
185 | 184 | versionsAreValid(v); |
186 | 185 |
|
187 | | - if ( compareTo(v) < 0 ) |
188 | | - return true; |
189 | | - else |
190 | | - return false; |
| 186 | + return compareTo(v) < 0; |
191 | 187 | } |
192 | 188 | } |
0 commit comments