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.Nonnull;
25 import org.apache.maven.api.annotations.NotThreadSafe;
26
27 import static org.apache.maven.api.services.BaseRequest.nonNull;
28
29
30
31
32
33 @Experimental
34 public interface VersionRangeResolverRequest {
35
36 @Nonnull
37 Session getSession();
38
39 @Nonnull
40 ArtifactCoordinate getArtifactCoordinate();
41
42 @Nonnull
43 static VersionRangeResolverRequest build(@Nonnull Session session, @Nonnull ArtifactCoordinate artifactCoordinate) {
44 return builder()
45 .session(nonNull(session, "session cannot be null"))
46 .artifactCoordinate(nonNull(artifactCoordinate, "artifactCoordinate cannot be null"))
47 .build();
48 }
49
50 @Nonnull
51 static VersionResolverRequestBuilder builder() {
52 return new VersionResolverRequestBuilder();
53 }
54
55 @NotThreadSafe
56 class VersionResolverRequestBuilder {
57 Session session;
58 ArtifactCoordinate artifactCoordinate;
59
60 public VersionResolverRequestBuilder session(Session session) {
61 this.session = session;
62 return this;
63 }
64
65 public VersionResolverRequestBuilder artifactCoordinate(ArtifactCoordinate artifactCoordinate) {
66 this.artifactCoordinate = artifactCoordinate;
67 return this;
68 }
69
70 public VersionRangeResolverRequest build() {
71 return new DefaultVersionResolverRequest(session, artifactCoordinate);
72 }
73
74 private static class DefaultVersionResolverRequest extends BaseRequest implements VersionRangeResolverRequest {
75 private final ArtifactCoordinate artifactCoordinate;
76
77 @SuppressWarnings("checkstyle:ParameterNumber")
78 DefaultVersionResolverRequest(@Nonnull Session session, @Nonnull ArtifactCoordinate artifactCoordinate) {
79 super(session);
80 this.artifactCoordinate = artifactCoordinate;
81 }
82
83 @Nonnull
84 @Override
85 public ArtifactCoordinate getArtifactCoordinate() {
86 return artifactCoordinate;
87 }
88 }
89 }
90 }