|
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