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