88public class GAV {
99 public static GAV parse (String gav ) {
1010 String [] parts = gav .split (":" );
11- if (parts .length < 3 || parts .length > 4 ) {
11+ if (parts .length < 3 || parts .length > 5 ) {
1212 throw new IllegalArgumentException ("can't parse '" + gav + "' as a module coordinates (GAV). " +
13- "It must have at least 3 parts separated by columns. (4th is optional and correspond to artifact type)" );
13+ "It must have at least 3 parts separated by columns. (4th and 5th are optional and correspond to artifact type and classifier )" );
1414 }
1515 if (parts .length == 3 ) {
1616 return new GAV (parts [0 ], parts [1 ], parts [2 ]);
1717 }
18- return new GAV (parts [0 ], parts [1 ], parts [2 ], parts [3 ]);
18+ if (parts .length == 4 ) {
19+ return new GAV (parts [0 ], parts [1 ], parts [2 ], parts [3 ]);
20+ }
21+ return new GAV (parts [0 ], parts [1 ], parts [2 ], parts [3 ], parts [4 ]);
1922 }
2023
2124 private final String groupId ;
2225 private final String artifactId ;
2326 private final String version ;
2427 private final String type ;
28+ private final String classifier ;
2529
2630 public GAV (String groupId , String artifactId , String version ) {
27- this (groupId , artifactId , version , null );
31+ this (groupId , artifactId , version , null , null );
2832 }
2933
30- public GAV (final String groupId , final String artifactId , final String version , final String type ) {
34+ public GAV (String groupId , String artifactId , String version , String type ) {
35+ this (groupId , artifactId , version , type , null );
36+ }
37+
38+ public GAV (final String groupId , final String artifactId , final String version , final String type , final String classifier ) {
3139 this .groupId = groupId ;
3240 this .artifactId = artifactId ;
3341 this .version = version ;
3442 this .type = type ;
43+ this .classifier = classifier ;
3544 }
3645
3746 public String getGroupId () {
@@ -50,6 +59,10 @@ public String getType() {
5059 return type ;
5160 }
5261
62+ public String getClassifier () {
63+ return classifier ;
64+ }
65+
5366 @ Override
5467 public String toString () {
5568 if (type == null ){
0 commit comments