|
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