1
2
3
4 package org.apache.maven.api.settings;
5
6 import java.io.Serializable;
7 import java.util.Collections;
8 import java.util.HashMap;
9 import java.util.Map;
10 import org.apache.maven.api.annotations.Experimental;
11 import org.apache.maven.api.annotations.Generated;
12 import org.apache.maven.api.annotations.Immutable;
13 import org.apache.maven.api.annotations.Nonnull;
14 import org.apache.maven.api.annotations.NotThreadSafe;
15 import org.apache.maven.api.annotations.ThreadSafe;
16
17
18
19
20
21 @Experimental
22 @Generated @ThreadSafe @Immutable
23 public class ActivationOS
24 implements Serializable
25 {
26
27
28
29 final String name;
30
31
32
33
34 final String family;
35
36
37
38 final String arch;
39
40
41
42 final String version;
43
44
45
46
47
48 ActivationOS(
49 String name,
50 String family,
51 String arch,
52 String version
53 )
54 {
55 this.name = name;
56 this.family = family;
57 this.arch = arch;
58 this.version = version;
59 }
60
61
62
63
64
65
66 public String getName()
67 {
68 return this.name;
69 }
70
71
72
73
74
75
76
77 public String getFamily()
78 {
79 return this.family;
80 }
81
82
83
84
85
86
87 public String getArch()
88 {
89 return this.arch;
90 }
91
92
93
94
95
96
97 public String getVersion()
98 {
99 return this.version;
100 }
101
102
103
104
105
106
107 @Nonnull
108 public Builder with()
109 {
110 return newBuilder( this );
111 }
112
113
114
115
116
117
118 @Nonnull
119 public ActivationOS withName( String name )
120 {
121 return with().name( name ).build();
122 }
123
124
125
126
127
128
129 @Nonnull
130 public ActivationOS withFamily( String family )
131 {
132 return with().family( family ).build();
133 }
134
135
136
137
138
139
140 @Nonnull
141 public ActivationOS withArch( String arch )
142 {
143 return with().arch( arch ).build();
144 }
145
146
147
148
149
150
151 @Nonnull
152 public ActivationOS withVersion( String version )
153 {
154 return with().version( version ).build();
155 }
156
157
158
159
160
161
162
163
164 @Nonnull
165 public static ActivationOS newInstance()
166 {
167 return newInstance( true );
168 }
169
170
171
172
173
174
175
176
177 @Nonnull
178 public static ActivationOS newInstance( boolean withDefaults )
179 {
180 return newBuilder( withDefaults ).build();
181 }
182
183
184
185
186
187
188
189
190 @Nonnull
191 public static Builder newBuilder()
192 {
193 return newBuilder( true );
194 }
195
196
197
198
199
200
201
202 @Nonnull
203 public static Builder newBuilder( boolean withDefaults )
204 {
205 return new Builder( withDefaults );
206 }
207
208
209
210
211
212
213
214
215 @Nonnull
216 public static Builder newBuilder( ActivationOS from )
217 {
218 return newBuilder( from, false );
219 }
220
221
222
223
224
225
226
227
228 @Nonnull
229 public static Builder newBuilder( ActivationOS from, boolean forceCopy )
230 {
231 return new Builder( from, forceCopy );
232 }
233
234
235
236
237
238
239 @NotThreadSafe
240 public static class Builder
241 {
242 ActivationOS base;
243 String name;
244 String family;
245 String arch;
246 String version;
247
248 Builder( boolean withDefaults )
249 {
250 if ( withDefaults )
251 {
252 }
253 }
254
255 Builder( ActivationOS base, boolean forceCopy )
256 {
257 if ( forceCopy )
258 {
259 this.name = base.name;
260 this.family = base.family;
261 this.arch = base.arch;
262 this.version = base.version;
263 }
264 else
265 {
266 this.base = base;
267 }
268 }
269
270 @Nonnull
271 public Builder name( String name )
272 {
273 this.name = name;
274 return this;
275 }
276
277 @Nonnull
278 public Builder family( String family )
279 {
280 this.family = family;
281 return this;
282 }
283
284 @Nonnull
285 public Builder arch( String arch )
286 {
287 this.arch = arch;
288 return this;
289 }
290
291 @Nonnull
292 public Builder version( String version )
293 {
294 this.version = version;
295 return this;
296 }
297
298
299 @Nonnull
300 public ActivationOS build()
301 {
302 if ( base != null
303 && ( name == null || name == base.name )
304 && ( family == null || family == base.family )
305 && ( arch == null || arch == base.arch )
306 && ( version == null || version == base.version )
307 )
308 {
309 return base;
310 }
311 return new ActivationOS(
312 name != null ? name : ( base != null ? base.name : null ),
313 family != null ? family : ( base != null ? base.family : null ),
314 arch != null ? arch : ( base != null ? base.arch : null ),
315 version != null ? version : ( base != null ? base.version : null )
316 );
317 }
318 }
319
320 }