1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.api.services;
20
21 import org.apache.maven.api.ArtifactCoordinate;
22 import org.apache.maven.api.Session;
23 import org.apache.maven.api.annotations.Experimental;
24 import org.apache.maven.api.annotations.Immutable;
25 import org.apache.maven.api.annotations.Nonnull;
26 import org.apache.maven.api.annotations.NotThreadSafe;
27
28 import static org.apache.maven.api.services.BaseRequest.nonNull;
29
30
31
32
33
34
35 @Experimental
36 @Immutable
37 public interface ArtifactCoordinateFactoryRequest {
38
39 @Nonnull
40 Session getSession();
41
42 String getGroupId();
43
44 String getArtifactId();
45
46 String getVersion();
47
48 String getClassifier();
49
50 String getExtension();
51
52 String getType();
53
54 String getCoordinateString();
55
56 @Nonnull
57 static ArtifactCoordinateFactoryRequest build(
58 @Nonnull Session session, String groupId, String artifactId, String version, String extension) {
59 return ArtifactCoordinateFactoryRequest.builder()
60 .session(nonNull(session, "session"))
61 .groupId(groupId)
62 .artifactId(artifactId)
63 .version(version)
64 .extension(extension)
65 .build();
66 }
67
68 @Nonnull
69 static ArtifactCoordinateFactoryRequest build(
70 @Nonnull Session session,
71 String groupId,
72 String artifactId,
73 String version,
74 String classifier,
75 String extension,
76 String type) {
77 return ArtifactCoordinateFactoryRequest.builder()
78 .session(nonNull(session, "session"))
79 .groupId(groupId)
80 .artifactId(artifactId)
81 .version(version)
82 .classifier(classifier)
83 .extension(extension)
84 .type(type)
85 .build();
86 }
87
88 @Nonnull
89 static ArtifactCoordinateFactoryRequest build(@Nonnull Session session, @Nonnull String coordinateString) {
90 return ArtifactCoordinateFactoryRequest.builder()
91 .session(nonNull(session, "session"))
92 .coordinateString(nonNull(coordinateString, "coordinateString"))
93 .build();
94 }
95
96 @Nonnull
97 static ArtifactCoordinateFactoryRequest build(@Nonnull Session session, @Nonnull ArtifactCoordinate coordinate) {
98 return ArtifactCoordinateFactoryRequest.builder()
99 .session(nonNull(session, "session"))
100 .groupId(nonNull(coordinate, "coordinate").getGroupId())
101 .artifactId(coordinate.getArtifactId())
102 .classifier(coordinate.getClassifier())
103 .version(coordinate.getVersion().asString())
104 .extension(coordinate.getExtension())
105 .build();
106 }
107
108 static ArtifactFactoryRequestBuilder builder() {
109 return new ArtifactFactoryRequestBuilder();
110 }
111
112 @NotThreadSafe
113 class ArtifactFactoryRequestBuilder {
114 private Session session;
115 private String groupId;
116 private String artifactId;
117 private String version;
118 private String classifier;
119 private String extension;
120 private String type;
121 private String coordinateString;
122
123 ArtifactFactoryRequestBuilder() {}
124
125 public ArtifactFactoryRequestBuilder session(Session session) {
126 this.session = session;
127 return this;
128 }
129
130 public ArtifactFactoryRequestBuilder groupId(String groupId) {
131 this.groupId = groupId;
132 return this;
133 }
134
135 public ArtifactFactoryRequestBuilder artifactId(String artifactId) {
136 this.artifactId = artifactId;
137 return this;
138 }
139
140 public ArtifactFactoryRequestBuilder version(String version) {
141 this.version = version;
142 return this;
143 }
144
145 public ArtifactFactoryRequestBuilder classifier(String classifier) {
146 this.classifier = classifier;
147 return this;
148 }
149
150 public ArtifactFactoryRequestBuilder extension(String extension) {
151 this.extension = extension;
152 return this;
153 }
154
155 public ArtifactFactoryRequestBuilder type(String type) {
156 this.type = type;
157 return this;
158 }
159
160 public ArtifactFactoryRequestBuilder coordinateString(String coordinateString) {
161 this.coordinateString = coordinateString;
162 return this;
163 }
164
165 public ArtifactCoordinateFactoryRequest build() {
166 return new DefaultArtifactFactoryRequestArtifact(
167 session, groupId, artifactId, version, classifier, extension, type, coordinateString);
168 }
169
170 private static class DefaultArtifactFactoryRequestArtifact extends BaseRequest
171 implements ArtifactCoordinateFactoryRequest {
172 private final String groupId;
173 private final String artifactId;
174 private final String version;
175 private final String classifier;
176 private final String extension;
177 private final String type;
178 private final String coordinateString;
179
180 DefaultArtifactFactoryRequestArtifact(
181 @Nonnull Session session,
182 String groupId,
183 String artifactId,
184 String version,
185 String classifier,
186 String extension,
187 String type,
188 String coordinateString) {
189 super(session);
190 this.groupId = groupId;
191 this.artifactId = artifactId;
192 this.version = version;
193 this.classifier = classifier;
194 this.extension = extension;
195 this.type = type;
196 this.coordinateString = coordinateString;
197 }
198
199 @Override
200 public String getGroupId() {
201 return groupId;
202 }
203
204 @Override
205 public String getArtifactId() {
206 return artifactId;
207 }
208
209 @Override
210 public String getVersion() {
211 return version;
212 }
213
214 @Override
215 public String getClassifier() {
216 return classifier;
217 }
218
219 @Override
220 public String getExtension() {
221 return extension;
222 }
223
224 @Override
225 public String getType() {
226 return type;
227 }
228
229 public String getCoordinateString() {
230 return coordinateString;
231 }
232 }
233 }
234 }