1 package org.apache.maven.plugin.ear.util;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.HashMap;
23 import java.util.Map;
24
25
26
27
28
29
30 public class JavaEEVersion
31 implements Comparable<JavaEEVersion>
32 {
33
34 private static final String VERSION_1_3 = "1.3";
35
36 private static final String VERSION_1_4 = "1.4";
37
38 private static final String VERSION_5 = "5";
39
40 private static final String VERSION_6 = "6";
41
42 private static final Map<String, JavaEEVersion> versionsMap = new HashMap<String, JavaEEVersion>();
43
44
45
46
47
48 public static final JavaEEVersion OneDotThree = new JavaEEVersion( new Integer( 0 ), VERSION_1_3 );
49
50
51
52
53 public static final JavaEEVersion OneDotFour = new JavaEEVersion( new Integer( 1 ), VERSION_1_4 );
54
55
56
57
58 public static final JavaEEVersion Five = new JavaEEVersion( new Integer( 2 ), VERSION_5 );
59
60
61
62
63 public static final JavaEEVersion Six = new JavaEEVersion( new Integer( 3 ), VERSION_6 );
64
65
66 private final Integer index;
67
68 private final String version;
69
70 private JavaEEVersion( Integer index, String version )
71 {
72 this.index = index;
73 this.version = version;
74 versionsMap.put( version, this );
75 }
76
77 public static JavaEEVersion getJavaEEVersion( String version )
78 throws InvalidJavaEEVersion
79 {
80 if ( !isValid( version ) )
81 {
82 throw new InvalidJavaEEVersion( "Invalid version [" + version + "]", version );
83 }
84 return (JavaEEVersion) versionsMap.get( version );
85 }
86
87
88
89
90
91
92 public String getVersion()
93 {
94 return version;
95 }
96
97
98
99
100
101
102
103 public boolean ge( JavaEEVersion version )
104 {
105 return this.compareTo( version ) >= 0;
106 }
107
108
109
110
111
112
113
114 public boolean gt( JavaEEVersion version )
115 {
116 return this.compareTo( version ) > 0;
117 }
118
119
120
121
122
123
124
125 public boolean eq( JavaEEVersion version )
126 {
127 return this.compareTo( version ) == 0;
128 }
129
130
131
132
133
134
135
136 public boolean le( JavaEEVersion version )
137 {
138 return this.compareTo( version ) <= 0;
139 }
140
141
142
143
144
145
146
147
148 public boolean lt( JavaEEVersion version )
149 {
150 return this.compareTo( version ) < 0;
151 }
152
153
154
155
156
157
158
159 private static boolean isValid( String version )
160 {
161 if ( version == null )
162 {
163 throw new IllegalArgumentException( "version could not be null." );
164 }
165 return VERSION_1_3.equals( version ) || VERSION_1_4.equals( version ) || VERSION_5.equals( version )
166 || VERSION_6.equals( version );
167 }
168
169 public int compareTo( JavaEEVersion otherVersion )
170 {
171 if ( otherVersion == null )
172 {
173 throw new IllegalArgumentException( "other object to compare to could not be null." );
174 }
175 return index.compareTo( otherVersion.index );
176 }
177 }