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 java.nio.file.Path;
22 import java.util.Optional;
23
24 import org.apache.maven.api.Session;
25 import org.apache.maven.api.annotations.Nonnull;
26 import org.apache.maven.api.annotations.NotThreadSafe;
27 import org.apache.maven.api.annotations.Nullable;
28
29 import static org.apache.maven.api.services.BaseRequest.nonNull;
30
31 public interface ToolchainsBuilderRequest {
32 @Nonnull
33 Session getSession();
34
35
36
37
38
39
40 @Nonnull
41 Optional<Path> getGlobalToolchainsPath();
42
43
44
45
46
47
48 @Nonnull
49 Optional<Source> getGlobalToolchainsSource();
50
51
52
53
54
55
56 @Nonnull
57 Optional<Path> getUserToolchainsPath();
58
59
60
61
62
63
64 @Nonnull
65 Optional<Source> getUserToolchainsSource();
66
67 @Nonnull
68 static ToolchainsBuilderRequest build(
69 @Nonnull Session session, @Nonnull Source globalToolchainsSource, @Nonnull Source userToolchainsSource) {
70 return builder()
71 .session(nonNull(session, "session cannot be null"))
72 .globalToolchainsSource(nonNull(globalToolchainsSource, "globalToolchainsSource cannot be null"))
73 .userToolchainsSource(nonNull(userToolchainsSource, "userToolchainsSource cannot be null"))
74 .build();
75 }
76
77 @Nonnull
78 static ToolchainsBuilderRequest build(
79 @Nonnull Session session, @Nonnull Path globalToolchainsPath, @Nonnull Path userToolchainsPath) {
80 return builder()
81 .session(nonNull(session, "session cannot be null"))
82 .globalToolchainsPath(nonNull(globalToolchainsPath, "globalToolchainsPath cannot be null"))
83 .userToolchainsPath(nonNull(userToolchainsPath, "userToolchainsPath cannot be null"))
84 .build();
85 }
86
87 @Nonnull
88 static ToolchainsBuilderRequestBuilder builder() {
89 return new ToolchainsBuilderRequestBuilder();
90 }
91
92 @NotThreadSafe
93 class ToolchainsBuilderRequestBuilder {
94 Session session;
95 Path globalToolchainsPath;
96 Source globalToolchainsSource;
97 Path userToolchainsPath;
98 Source userToolchainsSource;
99
100 public ToolchainsBuilderRequestBuilder session(Session session) {
101 this.session = session;
102 return this;
103 }
104
105 public ToolchainsBuilderRequestBuilder globalToolchainsPath(Path globalToolchainsPath) {
106 this.globalToolchainsPath = globalToolchainsPath;
107 return this;
108 }
109
110 public ToolchainsBuilderRequestBuilder globalToolchainsSource(Source globalToolchainsSource) {
111 this.globalToolchainsSource = globalToolchainsSource;
112 return this;
113 }
114
115 public ToolchainsBuilderRequestBuilder userToolchainsPath(Path userToolchainsPath) {
116 this.userToolchainsPath = userToolchainsPath;
117 return this;
118 }
119
120 public ToolchainsBuilderRequestBuilder userToolchainsSource(Source userToolchainsSource) {
121 this.userToolchainsSource = userToolchainsSource;
122 return this;
123 }
124
125 public ToolchainsBuilderRequest build() {
126 return new ToolchainsBuilderRequestBuilder.DefaultToolchainsBuilderRequest(
127 session, globalToolchainsPath, globalToolchainsSource, userToolchainsPath, userToolchainsSource);
128 }
129
130 private static class DefaultToolchainsBuilderRequest extends BaseRequest implements ToolchainsBuilderRequest {
131 private final Path globalToolchainsPath;
132 private final Source globalToolchainsSource;
133 private final Path userToolchainsPath;
134 private final Source userToolchainsSource;
135
136 @SuppressWarnings("checkstyle:ParameterNumber")
137 DefaultToolchainsBuilderRequest(
138 @Nonnull Session session,
139 @Nullable Path globalToolchainsPath,
140 @Nullable Source globalToolchainsSource,
141 @Nullable Path userToolchainsPath,
142 @Nullable Source userToolchainsSource) {
143 super(session);
144 this.globalToolchainsPath = globalToolchainsPath;
145 this.globalToolchainsSource = globalToolchainsSource;
146 this.userToolchainsPath = userToolchainsPath;
147 this.userToolchainsSource = userToolchainsSource;
148 }
149
150 @Nonnull
151 @Override
152 public Optional<Path> getGlobalToolchainsPath() {
153 return Optional.ofNullable(globalToolchainsPath);
154 }
155
156 @Nonnull
157 @Override
158 public Optional<Source> getGlobalToolchainsSource() {
159 return Optional.ofNullable(globalToolchainsSource);
160 }
161
162 @Nonnull
163 @Override
164 public Optional<Path> getUserToolchainsPath() {
165 return Optional.ofNullable(userToolchainsPath);
166 }
167
168 @Nonnull
169 @Override
170 public Optional<Source> getUserToolchainsSource() {
171 return Optional.ofNullable(userToolchainsSource);
172 }
173 }
174 }
175 }