|
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 |
|
0 commit comments