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