View Javadoc
1   // =================== DO NOT EDIT THIS FILE ====================
2   //  Generated by Modello Velocity from transformer.vm
3   //  template, any modifications will be overwritten.
4   // ==============================================================
5   package org.apache.maven.settings.v4;
6   
7   import java.io.ObjectStreamException;
8   import java.util.AbstractList;
9   import java.util.ArrayList;
10  import java.util.Collection;
11  import java.util.HashMap;
12  import java.util.Iterator;
13  import java.util.LinkedHashMap;
14  import java.util.List;
15  import java.util.Map;
16  import java.util.Properties;
17  import java.util.Objects;
18  import java.util.function.BinaryOperator;
19  import java.util.function.Function;
20  import java.util.stream.Collectors;
21  
22  import org.apache.maven.api.annotations.Generated;
23  import org.apache.maven.api.xml.XmlNode;
24  import org.apache.maven.api.settings.TrackableBase;
25  import org.apache.maven.api.settings.IdentifiableBase;
26  import org.apache.maven.api.settings.Settings;
27  import org.apache.maven.api.settings.Proxy;
28  import org.apache.maven.api.settings.Server;
29  import org.apache.maven.api.settings.Mirror;
30  import org.apache.maven.api.settings.Profile;
31  import org.apache.maven.api.settings.Activation;
32  import org.apache.maven.api.settings.RepositoryBase;
33  import org.apache.maven.api.settings.Repository;
34  import org.apache.maven.api.settings.RepositoryPolicy;
35  import org.apache.maven.api.settings.ActivationProperty;
36  import org.apache.maven.api.settings.ActivationOS;
37  import org.apache.maven.api.settings.ActivationFile;
38  import org.apache.maven.api.settings.InputLocation;
39  import org.apache.maven.api.settings.InputSource;
40  import org.codehaus.plexus.util.xml.Xpp3Dom;
41  
42  @Generated
43  public class SettingsTransformer {
44  
45      private final Function<String, String> transformer;
46  
47      public SettingsTransformer(Function<String, String> transformer) {
48          this.transformer = transformer;
49      }
50  
51      /**
52       * Transforms the given model
53       */
54      public Settings visit(Settings target) {
55          Objects.requireNonNull(target, "target cannot be null");
56          return transformSettings(target);
57      }
58  
59      /**
60       * The transformation function.
61       */
62      protected String transform(String value) {
63          return transformer.apply(value);
64      }
65  
66      protected TrackableBase transformTrackableBase(TrackableBase target) {
67          if (target == null) {
68              return null;
69          }
70          TrackableBase.Builder builder = TrackableBase.newBuilder(target);
71          return builder.build();
72      }
73  
74  
75      protected IdentifiableBase transformIdentifiableBase(IdentifiableBase target) {
76          if (target == null) {
77              return null;
78          }
79          IdentifiableBase.Builder builder = IdentifiableBase.newBuilder(target);
80          transformIdentifiableBase_Id(builder, target);
81          return builder.build();
82      }
83  
84      protected void transformIdentifiableBase_Id(IdentifiableBase.Builder builder, IdentifiableBase target) {
85          String newVal = transform(target.getId());
86          builder.id(newVal != target.getId() ? newVal : null);
87      }
88  
89      protected Settings transformSettings(Settings target) {
90          if (target == null) {
91              return null;
92          }
93          Settings.Builder builder = Settings.newBuilder(target);
94          transformSettings_LocalRepository(builder, target);
95          transformSettings_InteractiveMode(builder, target);
96          transformSettings_UsePluginRegistry(builder, target);
97          transformSettings_Offline(builder, target);
98          transformSettings_Proxies(builder, target);
99          transformSettings_Servers(builder, target);
100         transformSettings_Mirrors(builder, target);
101         transformSettings_Repositories(builder, target);
102         transformSettings_PluginRepositories(builder, target);
103         transformSettings_Profiles(builder, target);
104         transformSettings_ActiveProfiles(builder, target);
105         transformSettings_PluginGroups(builder, target);
106         return builder.build();
107     }
108 
109     protected void transformSettings_LocalRepository(Settings.Builder builder, Settings target) {
110         String newVal = transform(target.getLocalRepository());
111         builder.localRepository(newVal != target.getLocalRepository() ? newVal : null);
112     }
113     protected void transformSettings_InteractiveMode(Settings.Builder builder, Settings target) {
114         // nothing to do, the transformer only handles strings
115     }
116     protected void transformSettings_UsePluginRegistry(Settings.Builder builder, Settings target) {
117         // nothing to do, the transformer only handles strings
118     }
119     protected void transformSettings_Offline(Settings.Builder builder, Settings target) {
120         // nothing to do, the transformer only handles strings
121     }
122     protected void transformSettings_Proxies(Settings.Builder builder, Settings target) {
123         builder.proxies(transform(target.getProxies(), this::transformProxy));
124     }
125     protected void transformSettings_Servers(Settings.Builder builder, Settings target) {
126         builder.servers(transform(target.getServers(), this::transformServer));
127     }
128     protected void transformSettings_Mirrors(Settings.Builder builder, Settings target) {
129         builder.mirrors(transform(target.getMirrors(), this::transformMirror));
130     }
131     protected void transformSettings_Repositories(Settings.Builder builder, Settings target) {
132         builder.repositories(transform(target.getRepositories(), this::transformRepository));
133     }
134     protected void transformSettings_PluginRepositories(Settings.Builder builder, Settings target) {
135         builder.pluginRepositories(transform(target.getPluginRepositories(), this::transformRepository));
136     }
137     protected void transformSettings_Profiles(Settings.Builder builder, Settings target) {
138         builder.profiles(transform(target.getProfiles(), this::transformProfile));
139     }
140     protected void transformSettings_ActiveProfiles(Settings.Builder builder, Settings target) {
141         builder.activeProfiles(transform(target.getActiveProfiles(), this::transform));
142     }
143     protected void transformSettings_PluginGroups(Settings.Builder builder, Settings target) {
144         builder.pluginGroups(transform(target.getPluginGroups(), this::transform));
145     }
146 
147     protected Proxy transformProxy(Proxy target) {
148         if (target == null) {
149             return null;
150         }
151         Proxy.Builder builder = Proxy.newBuilder(target);
152         transformProxy_Active(builder, target);
153         transformProxy_Protocol(builder, target);
154         transformProxy_Username(builder, target);
155         transformProxy_Password(builder, target);
156         transformProxy_Port(builder, target);
157         transformProxy_Host(builder, target);
158         transformProxy_NonProxyHosts(builder, target);
159         transformIdentifiableBase_Id(builder, target);
160         return builder.build();
161     }
162 
163     protected void transformProxy_Active(Proxy.Builder builder, Proxy target) {
164         // nothing to do, the transformer only handles strings
165     }
166     protected void transformProxy_Protocol(Proxy.Builder builder, Proxy target) {
167         String newVal = transform(target.getProtocol());
168         builder.protocol(newVal != target.getProtocol() ? newVal : null);
169     }
170     protected void transformProxy_Username(Proxy.Builder builder, Proxy target) {
171         String newVal = transform(target.getUsername());
172         builder.username(newVal != target.getUsername() ? newVal : null);
173     }
174     protected void transformProxy_Password(Proxy.Builder builder, Proxy target) {
175         String newVal = transform(target.getPassword());
176         builder.password(newVal != target.getPassword() ? newVal : null);
177     }
178     protected void transformProxy_Port(Proxy.Builder builder, Proxy target) {
179         // nothing to do, the transformer only handles strings
180     }
181     protected void transformProxy_Host(Proxy.Builder builder, Proxy target) {
182         String newVal = transform(target.getHost());
183         builder.host(newVal != target.getHost() ? newVal : null);
184     }
185     protected void transformProxy_NonProxyHosts(Proxy.Builder builder, Proxy target) {
186         String newVal = transform(target.getNonProxyHosts());
187         builder.nonProxyHosts(newVal != target.getNonProxyHosts() ? newVal : null);
188     }
189     protected void transformProxy_Id(Proxy.Builder builder, Proxy target) {
190         String newVal = transform(target.getId());
191         builder.id(newVal != target.getId() ? newVal : null);
192     }
193 
194     protected Server transformServer(Server target) {
195         if (target == null) {
196             return null;
197         }
198         Server.Builder builder = Server.newBuilder(target);
199         transformServer_Username(builder, target);
200         transformServer_Password(builder, target);
201         transformServer_PrivateKey(builder, target);
202         transformServer_Passphrase(builder, target);
203         transformServer_FilePermissions(builder, target);
204         transformServer_DirectoryPermissions(builder, target);
205         transformServer_Configuration(builder, target);
206         transformIdentifiableBase_Id(builder, target);
207         return builder.build();
208     }
209 
210     protected void transformServer_Username(Server.Builder builder, Server target) {
211         String newVal = transform(target.getUsername());
212         builder.username(newVal != target.getUsername() ? newVal : null);
213     }
214     protected void transformServer_Password(Server.Builder builder, Server target) {
215         String newVal = transform(target.getPassword());
216         builder.password(newVal != target.getPassword() ? newVal : null);
217     }
218     protected void transformServer_PrivateKey(Server.Builder builder, Server target) {
219         String newVal = transform(target.getPrivateKey());
220         builder.privateKey(newVal != target.getPrivateKey() ? newVal : null);
221     }
222     protected void transformServer_Passphrase(Server.Builder builder, Server target) {
223         String newVal = transform(target.getPassphrase());
224         builder.passphrase(newVal != target.getPassphrase() ? newVal : null);
225     }
226     protected void transformServer_FilePermissions(Server.Builder builder, Server target) {
227         String newVal = transform(target.getFilePermissions());
228         builder.filePermissions(newVal != target.getFilePermissions() ? newVal : null);
229     }
230     protected void transformServer_DirectoryPermissions(Server.Builder builder, Server target) {
231         String newVal = transform(target.getDirectoryPermissions());
232         builder.directoryPermissions(newVal != target.getDirectoryPermissions() ? newVal : null);
233     }
234     protected void transformServer_Configuration(Server.Builder builder, Server target) {
235         XmlNode newVal = transform(target.getConfiguration());
236         builder.configuration(newVal != target.getConfiguration() ? newVal : null);
237     }
238     protected void transformServer_Id(Server.Builder builder, Server target) {
239         String newVal = transform(target.getId());
240         builder.id(newVal != target.getId() ? newVal : null);
241     }
242 
243     protected Mirror transformMirror(Mirror target) {
244         if (target == null) {
245             return null;
246         }
247         Mirror.Builder builder = Mirror.newBuilder(target);
248         transformMirror_MirrorOf(builder, target);
249         transformMirror_Name(builder, target);
250         transformMirror_Url(builder, target);
251         transformMirror_Layout(builder, target);
252         transformMirror_MirrorOfLayouts(builder, target);
253         transformMirror_Blocked(builder, target);
254         transformIdentifiableBase_Id(builder, target);
255         return builder.build();
256     }
257 
258     protected void transformMirror_MirrorOf(Mirror.Builder builder, Mirror target) {
259         String newVal = transform(target.getMirrorOf());
260         builder.mirrorOf(newVal != target.getMirrorOf() ? newVal : null);
261     }
262     protected void transformMirror_Name(Mirror.Builder builder, Mirror target) {
263         String newVal = transform(target.getName());
264         builder.name(newVal != target.getName() ? newVal : null);
265     }
266     protected void transformMirror_Url(Mirror.Builder builder, Mirror target) {
267         String newVal = transform(target.getUrl());
268         builder.url(newVal != target.getUrl() ? newVal : null);
269     }
270     protected void transformMirror_Layout(Mirror.Builder builder, Mirror target) {
271         String newVal = transform(target.getLayout());
272         builder.layout(newVal != target.getLayout() ? newVal : null);
273     }
274     protected void transformMirror_MirrorOfLayouts(Mirror.Builder builder, Mirror target) {
275         String newVal = transform(target.getMirrorOfLayouts());
276         builder.mirrorOfLayouts(newVal != target.getMirrorOfLayouts() ? newVal : null);
277     }
278     protected void transformMirror_Blocked(Mirror.Builder builder, Mirror target) {
279         // nothing to do, the transformer only handles strings
280     }
281     protected void transformMirror_Id(Mirror.Builder builder, Mirror target) {
282         String newVal = transform(target.getId());
283         builder.id(newVal != target.getId() ? newVal : null);
284     }
285 
286     protected Profile transformProfile(Profile target) {
287         if (target == null) {
288             return null;
289         }
290         Profile.Builder builder = Profile.newBuilder(target);
291         transformProfile_Activation(builder, target);
292         transformProfile_Properties(builder, target);
293         transformProfile_Repositories(builder, target);
294         transformProfile_PluginRepositories(builder, target);
295         transformIdentifiableBase_Id(builder, target);
296         return builder.build();
297     }
298 
299     protected void transformProfile_Activation(Profile.Builder builder, Profile target) {
300         Activation newVal = transformActivation(target.getActivation());
301         builder.activation(newVal != target.getActivation() ? newVal : null);
302     }
303     protected void transformProfile_Properties(Profile.Builder builder, Profile target) {
304         Map<String, String> props = target.getProperties();
305         Map<String, String> newProps = null;
306         for (Map.Entry<String, String> entry : props.entrySet()) {
307             String newVal = transform(entry.getValue());
308             if (newVal != null && newVal != entry.getValue()) {
309                 if (newProps == null) {
310                     newProps = new HashMap<>();
311                     newProps.putAll(props);
312                     builder.properties(newProps);
313                 }
314                 newProps.put(entry.getKey(), newVal);
315             }
316         }
317     }
318     protected void transformProfile_Repositories(Profile.Builder builder, Profile target) {
319         builder.repositories(transform(target.getRepositories(), this::transformRepository));
320     }
321     protected void transformProfile_PluginRepositories(Profile.Builder builder, Profile target) {
322         builder.pluginRepositories(transform(target.getPluginRepositories(), this::transformRepository));
323     }
324     protected void transformProfile_Id(Profile.Builder builder, Profile target) {
325         String newVal = transform(target.getId());
326         builder.id(newVal != target.getId() ? newVal : null);
327     }
328 
329     protected Activation transformActivation(Activation target) {
330         if (target == null) {
331             return null;
332         }
333         Activation.Builder builder = Activation.newBuilder(target);
334         transformActivation_ActiveByDefault(builder, target);
335         transformActivation_Jdk(builder, target);
336         transformActivation_Os(builder, target);
337         transformActivation_Property(builder, target);
338         transformActivation_File(builder, target);
339         return builder.build();
340     }
341 
342     protected void transformActivation_ActiveByDefault(Activation.Builder builder, Activation target) {
343         // nothing to do, the transformer only handles strings
344     }
345     protected void transformActivation_Jdk(Activation.Builder builder, Activation target) {
346         String newVal = transform(target.getJdk());
347         builder.jdk(newVal != target.getJdk() ? newVal : null);
348     }
349     protected void transformActivation_Os(Activation.Builder builder, Activation target) {
350         ActivationOS newVal = transformActivationOS(target.getOs());
351         builder.os(newVal != target.getOs() ? newVal : null);
352     }
353     protected void transformActivation_Property(Activation.Builder builder, Activation target) {
354         ActivationProperty newVal = transformActivationProperty(target.getProperty());
355         builder.property(newVal != target.getProperty() ? newVal : null);
356     }
357     protected void transformActivation_File(Activation.Builder builder, Activation target) {
358         ActivationFile newVal = transformActivationFile(target.getFile());
359         builder.file(newVal != target.getFile() ? newVal : null);
360     }
361 
362     protected RepositoryBase transformRepositoryBase(RepositoryBase target) {
363         if (target == null) {
364             return null;
365         }
366         RepositoryBase.Builder builder = RepositoryBase.newBuilder(target);
367         transformRepositoryBase_Name(builder, target);
368         transformRepositoryBase_Url(builder, target);
369         transformRepositoryBase_Layout(builder, target);
370         transformIdentifiableBase_Id(builder, target);
371         return builder.build();
372     }
373 
374     protected void transformRepositoryBase_Name(RepositoryBase.Builder builder, RepositoryBase target) {
375         String newVal = transform(target.getName());
376         builder.name(newVal != target.getName() ? newVal : null);
377     }
378     protected void transformRepositoryBase_Url(RepositoryBase.Builder builder, RepositoryBase target) {
379         String newVal = transform(target.getUrl());
380         builder.url(newVal != target.getUrl() ? newVal : null);
381     }
382     protected void transformRepositoryBase_Layout(RepositoryBase.Builder builder, RepositoryBase target) {
383         String newVal = transform(target.getLayout());
384         builder.layout(newVal != target.getLayout() ? newVal : null);
385     }
386     protected void transformRepositoryBase_Id(RepositoryBase.Builder builder, RepositoryBase target) {
387         String newVal = transform(target.getId());
388         builder.id(newVal != target.getId() ? newVal : null);
389     }
390 
391     protected Repository transformRepository(Repository target) {
392         if (target == null) {
393             return null;
394         }
395         Repository.Builder builder = Repository.newBuilder(target);
396         transformRepository_Releases(builder, target);
397         transformRepository_Snapshots(builder, target);
398         transformRepositoryBase_Name(builder, target);
399         transformRepositoryBase_Url(builder, target);
400         transformRepositoryBase_Layout(builder, target);
401         transformIdentifiableBase_Id(builder, target);
402         return builder.build();
403     }
404 
405     protected void transformRepository_Releases(Repository.Builder builder, Repository target) {
406         RepositoryPolicy newVal = transformRepositoryPolicy(target.getReleases());
407         builder.releases(newVal != target.getReleases() ? newVal : null);
408     }
409     protected void transformRepository_Snapshots(Repository.Builder builder, Repository target) {
410         RepositoryPolicy newVal = transformRepositoryPolicy(target.getSnapshots());
411         builder.snapshots(newVal != target.getSnapshots() ? newVal : null);
412     }
413     protected void transformRepository_Name(Repository.Builder builder, Repository target) {
414         String newVal = transform(target.getName());
415         builder.name(newVal != target.getName() ? newVal : null);
416     }
417     protected void transformRepository_Url(Repository.Builder builder, Repository target) {
418         String newVal = transform(target.getUrl());
419         builder.url(newVal != target.getUrl() ? newVal : null);
420     }
421     protected void transformRepository_Layout(Repository.Builder builder, Repository target) {
422         String newVal = transform(target.getLayout());
423         builder.layout(newVal != target.getLayout() ? newVal : null);
424     }
425     protected void transformRepository_Id(Repository.Builder builder, Repository target) {
426         String newVal = transform(target.getId());
427         builder.id(newVal != target.getId() ? newVal : null);
428     }
429 
430     protected RepositoryPolicy transformRepositoryPolicy(RepositoryPolicy target) {
431         if (target == null) {
432             return null;
433         }
434         RepositoryPolicy.Builder builder = RepositoryPolicy.newBuilder(target);
435         transformRepositoryPolicy_Enabled(builder, target);
436         transformRepositoryPolicy_UpdatePolicy(builder, target);
437         transformRepositoryPolicy_ChecksumPolicy(builder, target);
438         return builder.build();
439     }
440 
441     protected void transformRepositoryPolicy_Enabled(RepositoryPolicy.Builder builder, RepositoryPolicy target) {
442         // nothing to do, the transformer only handles strings
443     }
444     protected void transformRepositoryPolicy_UpdatePolicy(RepositoryPolicy.Builder builder, RepositoryPolicy target) {
445         String newVal = transform(target.getUpdatePolicy());
446         builder.updatePolicy(newVal != target.getUpdatePolicy() ? newVal : null);
447     }
448     protected void transformRepositoryPolicy_ChecksumPolicy(RepositoryPolicy.Builder builder, RepositoryPolicy target) {
449         String newVal = transform(target.getChecksumPolicy());
450         builder.checksumPolicy(newVal != target.getChecksumPolicy() ? newVal : null);
451     }
452 
453     protected ActivationProperty transformActivationProperty(ActivationProperty target) {
454         if (target == null) {
455             return null;
456         }
457         ActivationProperty.Builder builder = ActivationProperty.newBuilder(target);
458         transformActivationProperty_Name(builder, target);
459         transformActivationProperty_Value(builder, target);
460         return builder.build();
461     }
462 
463     protected void transformActivationProperty_Name(ActivationProperty.Builder builder, ActivationProperty target) {
464         String newVal = transform(target.getName());
465         builder.name(newVal != target.getName() ? newVal : null);
466     }
467     protected void transformActivationProperty_Value(ActivationProperty.Builder builder, ActivationProperty target) {
468         String newVal = transform(target.getValue());
469         builder.value(newVal != target.getValue() ? newVal : null);
470     }
471 
472     protected ActivationOS transformActivationOS(ActivationOS target) {
473         if (target == null) {
474             return null;
475         }
476         ActivationOS.Builder builder = ActivationOS.newBuilder(target);
477         transformActivationOS_Name(builder, target);
478         transformActivationOS_Family(builder, target);
479         transformActivationOS_Arch(builder, target);
480         transformActivationOS_Version(builder, target);
481         return builder.build();
482     }
483 
484     protected void transformActivationOS_Name(ActivationOS.Builder builder, ActivationOS target) {
485         String newVal = transform(target.getName());
486         builder.name(newVal != target.getName() ? newVal : null);
487     }
488     protected void transformActivationOS_Family(ActivationOS.Builder builder, ActivationOS target) {
489         String newVal = transform(target.getFamily());
490         builder.family(newVal != target.getFamily() ? newVal : null);
491     }
492     protected void transformActivationOS_Arch(ActivationOS.Builder builder, ActivationOS target) {
493         String newVal = transform(target.getArch());
494         builder.arch(newVal != target.getArch() ? newVal : null);
495     }
496     protected void transformActivationOS_Version(ActivationOS.Builder builder, ActivationOS target) {
497         String newVal = transform(target.getVersion());
498         builder.version(newVal != target.getVersion() ? newVal : null);
499     }
500 
501     protected ActivationFile transformActivationFile(ActivationFile target) {
502         if (target == null) {
503             return null;
504         }
505         ActivationFile.Builder builder = ActivationFile.newBuilder(target);
506         transformActivationFile_Missing(builder, target);
507         transformActivationFile_Exists(builder, target);
508         return builder.build();
509     }
510 
511     protected void transformActivationFile_Missing(ActivationFile.Builder builder, ActivationFile target) {
512         String newVal = transform(target.getMissing());
513         builder.missing(newVal != target.getMissing() ? newVal : null);
514     }
515     protected void transformActivationFile_Exists(ActivationFile.Builder builder, ActivationFile target) {
516         String newVal = transform(target.getExists());
517         builder.exists(newVal != target.getExists() ? newVal : null);
518     }
519 
520     protected <T> List<T> transform(List<T> list, Function<T, T> transformer) {
521         List<T> newList = null;
522         for (int i = 0; i < list.size(); i++) {
523             T newVal = transformer.apply(list.get(i));
524             if (newVal != list.get(i)) {
525                 if (newList == null) {
526                     newList = new ArrayList<>(list);
527                 }
528                 newList.set(i, newVal);
529             }
530         }
531         return newList;
532     }
533 
534     protected XmlNode transform(XmlNode node) {
535         if (node != null) {
536             Xpp3Dom xpp = new Xpp3Dom(node);
537             transform(xpp);
538             return xpp.getDom();
539         }
540         return node;
541     }
542 
543     protected void transform(Xpp3Dom dom) {
544         if (dom != null) {
545             String org, val;
546             // Content
547             org = dom.getValue();
548             val = transform(org);
549             if (org != val) {
550                 dom.setValue(val);
551             }
552             // Attributes
553             for (String attr : dom.getAttributeNames()) {
554                 org = dom.getAttribute(attr);
555                 val = transform(org);
556                 if (org != val) {
557                     dom.setAttribute(attr, val);
558                 }
559             }
560             // Children
561             for (int i = 0, l = dom.getChildCount(); i < l; i++) {
562                 transform(dom.getChild(i));
563             }
564         }
565     }
566 }