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 @Experimental
22 @Generated @ThreadSafe @Immutable
23 public class RepositoryPolicy
24 implements Serializable
25 {
26
27
28
29
30 final boolean enabled;
31
32
33
34
35
36 final String updatePolicy;
37
38
39
40
41 final String checksumPolicy;
42
43
44
45
46
47 RepositoryPolicy(
48 boolean enabled,
49 String updatePolicy,
50 String checksumPolicy
51 )
52 {
53 this.enabled = enabled;
54 this.updatePolicy = updatePolicy;
55 this.checksumPolicy = checksumPolicy;
56 }
57
58
59
60
61
62
63
64 public boolean isEnabled()
65 {
66 return this.enabled;
67 }
68
69
70
71
72
73
74
75
76 public String getUpdatePolicy()
77 {
78 return this.updatePolicy;
79 }
80
81
82
83
84
85
86
87 public String getChecksumPolicy()
88 {
89 return this.checksumPolicy;
90 }
91
92
93
94
95
96
97 @Nonnull
98 public Builder with()
99 {
100 return newBuilder( this );
101 }
102
103
104
105
106
107
108 @Nonnull
109 public RepositoryPolicy withEnabled( boolean enabled )
110 {
111 return with().enabled( enabled ).build();
112 }
113
114
115
116
117
118
119 @Nonnull
120 public RepositoryPolicy withUpdatePolicy( String updatePolicy )
121 {
122 return with().updatePolicy( updatePolicy ).build();
123 }
124
125
126
127
128
129
130 @Nonnull
131 public RepositoryPolicy withChecksumPolicy( String checksumPolicy )
132 {
133 return with().checksumPolicy( checksumPolicy ).build();
134 }
135
136
137
138
139
140
141
142
143 @Nonnull
144 public static RepositoryPolicy newInstance()
145 {
146 return newInstance( true );
147 }
148
149
150
151
152
153
154
155
156 @Nonnull
157 public static RepositoryPolicy newInstance( boolean withDefaults )
158 {
159 return newBuilder( withDefaults ).build();
160 }
161
162
163
164
165
166
167
168
169 @Nonnull
170 public static Builder newBuilder()
171 {
172 return newBuilder( true );
173 }
174
175
176
177
178
179
180
181 @Nonnull
182 public static Builder newBuilder( boolean withDefaults )
183 {
184 return new Builder( withDefaults );
185 }
186
187
188
189
190
191
192
193
194 @Nonnull
195 public static Builder newBuilder( RepositoryPolicy from )
196 {
197 return newBuilder( from, false );
198 }
199
200
201
202
203
204
205
206
207 @Nonnull
208 public static Builder newBuilder( RepositoryPolicy from, boolean forceCopy )
209 {
210 return new Builder( from, forceCopy );
211 }
212
213
214
215
216
217
218 @NotThreadSafe
219 public static class Builder
220 {
221 RepositoryPolicy base;
222 Boolean enabled;
223 String updatePolicy;
224 String checksumPolicy;
225
226 Builder( boolean withDefaults )
227 {
228 if ( withDefaults )
229 {
230 this.enabled = true;
231 }
232 }
233
234 Builder( RepositoryPolicy base, boolean forceCopy )
235 {
236 if ( forceCopy )
237 {
238 this.enabled = base.enabled;
239 this.updatePolicy = base.updatePolicy;
240 this.checksumPolicy = base.checksumPolicy;
241 }
242 else
243 {
244 this.base = base;
245 }
246 }
247
248 @Nonnull
249 public Builder enabled( boolean enabled )
250 {
251 this.enabled = enabled;
252 return this;
253 }
254
255 @Nonnull
256 public Builder updatePolicy( String updatePolicy )
257 {
258 this.updatePolicy = updatePolicy;
259 return this;
260 }
261
262 @Nonnull
263 public Builder checksumPolicy( String checksumPolicy )
264 {
265 this.checksumPolicy = checksumPolicy;
266 return this;
267 }
268
269
270 @Nonnull
271 public RepositoryPolicy build()
272 {
273 if ( base != null
274 && ( enabled == null || enabled == base.enabled )
275 && ( updatePolicy == null || updatePolicy == base.updatePolicy )
276 && ( checksumPolicy == null || checksumPolicy == base.checksumPolicy )
277 )
278 {
279 return base;
280 }
281 return new RepositoryPolicy(
282 enabled != null ? enabled : ( base != null ? base.enabled : true ),
283 updatePolicy != null ? updatePolicy : ( base != null ? base.updatePolicy : null ),
284 checksumPolicy != null ? checksumPolicy : ( base != null ? base.checksumPolicy : null )
285 );
286 }
287 }
288
289 }