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_ActiveString(builder, target);
153         transformProxy_Protocol(builder, target);
154         transformProxy_Username(builder, target);
155         transformProxy_Password(builder, target);
156         transformProxy_PortString(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_ActiveString(Proxy.Builder builder, Proxy target) {
164         String newVal = transform(target.getActiveString());
165         builder.activeString(newVal != target.getActiveString() ? newVal : null);
166     }
167     protected void transformProxy_Protocol(Proxy.Builder builder, Proxy target) {
168         String newVal = transform(target.getProtocol());
169         builder.protocol(newVal != target.getProtocol() ? newVal : null);
170     }
171     protected void transformProxy_Username(Proxy.Builder builder, Proxy target) {
172         String newVal = transform(target.getUsername());
173         builder.username(newVal != target.getUsername() ? newVal : null);
174     }
175     protected void transformProxy_Password(Proxy.Builder builder, Proxy target) {
176         String newVal = transform(target.getPassword());
177         builder.password(newVal != target.getPassword() ? newVal : null);
178     }
179     protected void transformProxy_PortString(Proxy.Builder builder, Proxy target) {
180         String newVal = transform(target.getPortString());
181         builder.portString(newVal != target.getPortString() ? newVal : null);
182     }
183     protected void transformProxy_Host(Proxy.Builder builder, Proxy target) {
184         String newVal = transform(target.getHost());
185         builder.host(newVal != target.getHost() ? newVal : null);
186     }
187     protected void transformProxy_NonProxyHosts(Proxy.Builder builder, Proxy target) {
188         String newVal = transform(target.getNonProxyHosts());
189         builder.nonProxyHosts(newVal != target.getNonProxyHosts() ? newVal : null);
190     }
191     protected void transformProxy_Id(Proxy.Builder builder, Proxy target) {
192         String newVal = transform(target.getId());
193         builder.id(newVal != target.getId() ? newVal : null);
194     }
195 
196     protected Server transformServer(Server target) {
197         if (target == null) {
198             return null;
199         }
200         Server.Builder builder = Server.newBuilder(target);
201         transformServer_Username(builder, target);
202         transformServer_Password(builder, target);
203         transformServer_PrivateKey(builder, target);
204         transformServer_Passphrase(builder, target);
205         transformServer_FilePermissions(builder, target);
206         transformServer_DirectoryPermissions(builder, target);
207         transformServer_Configuration(builder, target);
208         transformIdentifiableBase_Id(builder, target);
209         return builder.build();
210     }
211 
212     protected void transformServer_Username(Server.Builder builder, Server target) {
213         String newVal = transform(target.getUsername());
214         builder.username(newVal != target.getUsername() ? newVal : null);
215     }
216     protected void transformServer_Password(Server.Builder builder, Server target) {
217         String newVal = transform(target.getPassword());
218         builder.password(newVal != target.getPassword() ? newVal : null);
219     }
220     protected void transformServer_PrivateKey(Server.Builder builder, Server target) {
221         String newVal = transform(target.getPrivateKey());
222         builder.privateKey(newVal != target.getPrivateKey() ? newVal : null);
223     }
224     protected void transformServer_Passphrase(Server.Builder builder, Server target) {
225         String newVal = transform(target.getPassphrase());
226         builder.passphrase(newVal != target.getPassphrase() ? newVal : null);
227     }
228     protected void transformServer_FilePermissions(Server.Builder builder, Server target) {
229         String newVal = transform(target.getFilePermissions());
230         builder.filePermissions(newVal != target.getFilePermissions() ? newVal : null);
231     }
232     protected void transformServer_DirectoryPermissions(Server.Builder builder, Server target) {
233         String newVal = transform(target.getDirectoryPermissions());
234         builder.directoryPermissions(newVal != target.getDirectoryPermissions() ? newVal : null);
235     }
236     protected void transformServer_Configuration(Server.Builder builder, Server target) {
237         XmlNode newVal = transform(target.getConfiguration());
238         builder.configuration(newVal != target.getConfiguration() ? newVal : null);
239     }
240     protected void transformServer_Id(Server.Builder builder, Server target) {
241         String newVal = transform(target.getId());
242         builder.id(newVal != target.getId() ? newVal : null);
243     }
244 
245     protected Mirror transformMirror(Mirror target) {
246         if (target == null) {
247             return null;
248         }
249         Mirror.Builder builder = Mirror.newBuilder(target);
250         transformMirror_MirrorOf(builder, target);
251         transformMirror_Name(builder, target);
252         transformMirror_Url(builder, target);
253         transformMirror_Layout(builder, target);
254         transformMirror_MirrorOfLayouts(builder, target);
255         transformMirror_Blocked(builder, target);
256         transformIdentifiableBase_Id(builder, target);
257         return builder.build();
258     }
259 
260     protected void transformMirror_MirrorOf(Mirror.Builder builder, Mirror target) {
261         String newVal = transform(target.getMirrorOf());
262         builder.mirrorOf(newVal != target.getMirrorOf() ? newVal : null);
263     }
264     protected void transformMirror_Name(Mirror.Builder builder, Mirror target) {
265         String newVal = transform(target.getName());
266         builder.name(newVal != target.getName() ? newVal : null);
267     }
268     protected void transformMirror_Url(Mirror.Builder builder, Mirror target) {
269         String newVal = transform(target.getUrl());
270         builder.url(newVal != target.getUrl() ? newVal : null);
271     }
272     protected void transformMirror_Layout(Mirror.Builder builder, Mirror target) {
273         String newVal = transform(target.getLayout());
274         builder.layout(newVal != target.getLayout() ? newVal : null);
275     }
276     protected void transformMirror_MirrorOfLayouts(Mirror.Builder builder, Mirror target) {
277         String newVal = transform(target.getMirrorOfLayouts());
278         builder.mirrorOfLayouts(newVal != target.getMirrorOfLayouts() ? newVal : null);
279     }
280     protected void transformMirror_Blocked(Mirror.Builder builder, Mirror target) {
281         // nothing to do, the transformer only handles strings
282     }
283     protected void transformMirror_Id(Mirror.Builder builder, Mirror target) {
284         String newVal = transform(target.getId());
285         builder.id(newVal != target.getId() ? newVal : null);
286     }
287 
288     protected Profile transformProfile(Profile target) {
289         if (target == null) {
290             return null;
291         }
292         Profile.Builder builder = Profile.newBuilder(target);
293         transformProfile_Activation(builder, target);
294         transformProfile_Properties(builder, target);
295         transformProfile_Repositories(builder, target);
296         transformProfile_PluginRepositories(builder, target);
297         transformIdentifiableBase_Id(builder, target);
298         return builder.build();
299     }
300 
301     protected void transformProfile_Activation(Profile.Builder builder, Profile target) {
302         Activation newVal = transformActivation(target.getActivation());
303         builder.activation(newVal != target.getActivation() ? newVal : null);
304     }
305     protected void transformProfile_Properties(Profile.Builder builder, Profile target) {
306         Map<String, String> props = target.getProperties();
307         Map<String, String> newProps = null;
308         for (Map.Entry<String, String> entry : props.entrySet()) {
309             String newVal = transform(entry.getValue());
310             if (newVal != null && newVal != entry.getValue()) {
311                 if (newProps == null) {
312                     newProps = new HashMap<>();
313                     newProps.putAll(props);
314                     builder.properties(newProps);
315                 }
316                 newProps.put(entry.getKey(), newVal);
317             }
318         }
319     }
320     protected void transformProfile_Repositories(Profile.Builder builder, Profile target) {
321         builder.repositories(transform(target.getRepositories(), this::transformRepository));
322     }
323     protected void transformProfile_PluginRepositories(Profile.Builder builder, Profile target) {
324         builder.pluginRepositories(transform(target.getPluginRepositories(), this::transformRepository));
325     }
326     protected void transformProfile_Id(Profile.Builder builder, Profile target) {
327         String newVal = transform(target.getId());
328         builder.id(newVal != target.getId() ? newVal : null);
329     }
330 
331     protected Activation transformActivation(Activation target) {
332         if (target == null) {
333             return null;
334         }
335         Activation.Builder builder = Activation.newBuilder(target);
336         transformActivation_ActiveByDefault(builder, target);
337         transformActivation_Jdk(builder, target);
338         transformActivation_Os(builder, target);
339         transformActivation_Property(builder, target);
340         transformActivation_File(builder, target);
341         return builder.build();
342     }
343 
344     protected void transformActivation_ActiveByDefault(Activation.Builder builder, Activation target) {
345         // nothing to do, the transformer only handles strings
346     }
347     protected void transformActivation_Jdk(Activation.Builder builder, Activation target) {
348         String newVal = transform(target.getJdk());
349         builder.jdk(newVal != target.getJdk() ? newVal : null);
350     }
351     protected void transformActivation_Os(Activation.Builder builder, Activation target) {
352         ActivationOS newVal = transformActivationOS(target.getOs());
353         builder.os(newVal != target.getOs() ? newVal : null);
354     }
355     protected void transformActivation_Property(Activation.Builder builder, Activation target) {
356         ActivationProperty newVal = transformActivationProperty(target.getProperty());
357         builder.property(newVal != target.getProperty() ? newVal : null);
358     }
359     protected void transformActivation_File(Activation.Builder builder, Activation target) {
360         ActivationFile newVal = transformActivationFile(target.getFile());
361         builder.file(newVal != target.getFile() ? newVal : null);
362     }
363 
364     protected RepositoryBase transformRepositoryBase(RepositoryBase target) {
365         if (target == null) {
366             return null;
367         }
368         RepositoryBase.Builder builder = RepositoryBase.newBuilder(target);
369         transformRepositoryBase_Name(builder, target);
370         transformRepositoryBase_Url(builder, target);
371         transformRepositoryBase_Layout(builder, target);
372         transformIdentifiableBase_Id(builder, target);
373         return builder.build();
374     }
375 
376     protected void transformRepositoryBase_Name(RepositoryBase.Builder builder, RepositoryBase target) {
377         String newVal = transform(target.getName());
378         builder.name(newVal != target.getName() ? newVal : null);
379     }
380     protected void transformRepositoryBase_Url(RepositoryBase.Builder builder, RepositoryBase target) {
381         String newVal = transform(target.getUrl());
382         builder.url(newVal != target.getUrl() ? newVal : null);
383     }
384     protected void transformRepositoryBase_Layout(RepositoryBase.Builder builder, RepositoryBase target) {
385         String newVal = transform(target.getLayout());
386         builder.layout(newVal != target.getLayout() ? newVal : null);
387     }
388     protected void transformRepositoryBase_Id(RepositoryBase.Builder builder, RepositoryBase target) {
389         String newVal = transform(target.getId());
390         builder.id(newVal != target.getId() ? newVal : null);
391     }
392 
393     protected Repository transformRepository(Repository target) {
394         if (target == null) {
395             return null;
396         }
397         Repository.Builder builder = Repository.newBuilder(target);
398         transformRepository_Releases(builder, target);
399         transformRepository_Snapshots(builder, target);
400         transformRepositoryBase_Name(builder, target);
401         transformRepositoryBase_Url(builder, target);
402         transformRepositoryBase_Layout(builder, target);
403         transformIdentifiableBase_Id(builder, target);
404         return builder.build();
405     }
406 
407     protected void transformRepository_Releases(Repository.Builder builder, Repository target) {
408         RepositoryPolicy newVal = transformRepositoryPolicy(target.getReleases());
409         builder.releases(newVal != target.getReleases() ? newVal : null);
410     }
411     protected void transformRepository_Snapshots(Repository.Builder builder, Repository target) {
412         RepositoryPolicy newVal = transformRepositoryPolicy(target.getSnapshots());
413         builder.snapshots(newVal != target.getSnapshots() ? newVal : null);
414     }
415     protected void transformRepository_Name(Repository.Builder builder, Repository target) {
416         String newVal = transform(target.getName());
417         builder.name(newVal != target.getName() ? newVal : null);
418     }
419     protected void transformRepository_Url(Repository.Builder builder, Repository target) {
420         String newVal = transform(target.getUrl());
421         builder.url(newVal != target.getUrl() ? newVal : null);
422     }
423     protected void transformRepository_Layout(Repository.Builder builder, Repository target) {
424         String newVal = transform(target.getLayout());
425         builder.layout(newVal != target.getLayout() ? newVal : null);
426     }
427     protected void transformRepository_Id(Repository.Builder builder, Repository target) {
428         String newVal = transform(target.getId());
429         builder.id(newVal != target.getId() ? newVal : null);
430     }
431 
432     protected RepositoryPolicy transformRepositoryPolicy(RepositoryPolicy target) {
433         if (target == null) {
434             return null;
435         }
436         RepositoryPolicy.Builder builder = RepositoryPolicy.newBuilder(target);
437         transformRepositoryPolicy_Enabled(builder, target);
438         transformRepositoryPolicy_UpdatePolicy(builder, target);
439         transformRepositoryPolicy_ChecksumPolicy(builder, target);
440         return builder.build();
441     }
442 
443     protected void transformRepositoryPolicy_Enabled(RepositoryPolicy.Builder builder, RepositoryPolicy target) {
444         // nothing to do, the transformer only handles strings
445     }
446     protected void transformRepositoryPolicy_UpdatePolicy(RepositoryPolicy.Builder builder, RepositoryPolicy target) {
447         String newVal = transform(target.getUpdatePolicy());
448         builder.updatePolicy(newVal != target.getUpdatePolicy() ? newVal : null);
449     }
450     protected void transformRepositoryPolicy_ChecksumPolicy(RepositoryPolicy.Builder builder, RepositoryPolicy target) {
451         String newVal = transform(target.getChecksumPolicy());
452         builder.checksumPolicy(newVal != target.getChecksumPolicy() ? newVal : null);
453     }
454 
455     protected ActivationProperty transformActivationProperty(ActivationProperty target) {
456         if (target == null) {
457             return null;
458         }
459         ActivationProperty.Builder builder = ActivationProperty.newBuilder(target);
460         transformActivationProperty_Name(builder, target);
461         transformActivationProperty_Value(builder, target);
462         return builder.build();
463     }
464 
465     protected void transformActivationProperty_Name(ActivationProperty.Builder builder, ActivationProperty target) {
466         String newVal = transform(target.getName());
467         builder.name(newVal != target.getName() ? newVal : null);
468     }
469     protected void transformActivationProperty_Value(ActivationProperty.Builder builder, ActivationProperty target) {
470         String newVal = transform(target.getValue());
471         builder.value(newVal != target.getValue() ? newVal : null);
472     }
473 
474     protected ActivationOS transformActivationOS(ActivationOS target) {
475         if (target == null) {
476             return null;
477         }
478         ActivationOS.Builder builder = ActivationOS.newBuilder(target);
479         transformActivationOS_Name(builder, target);
480         transformActivationOS_Family(builder, target);
481         transformActivationOS_Arch(builder, target);
482         transformActivationOS_Version(builder, target);
483         return builder.build();
484     }
485 
486     protected void transformActivationOS_Name(ActivationOS.Builder builder, ActivationOS target) {
487         String newVal = transform(target.getName());
488         builder.name(newVal != target.getName() ? newVal : null);
489     }
490     protected void transformActivationOS_Family(ActivationOS.Builder builder, ActivationOS target) {
491         String newVal = transform(target.getFamily());
492         builder.family(newVal != target.getFamily() ? newVal : null);
493     }
494     protected void transformActivationOS_Arch(ActivationOS.Builder builder, ActivationOS target) {
495         String newVal = transform(target.getArch());
496         builder.arch(newVal != target.getArch() ? newVal : null);
497     }
498     protected void transformActivationOS_Version(ActivationOS.Builder builder, ActivationOS target) {
499         String newVal = transform(target.getVersion());
500         builder.version(newVal != target.getVersion() ? newVal : null);
501     }
502 
503     protected ActivationFile transformActivationFile(ActivationFile target) {
504         if (target == null) {
505             return null;
506         }
507         ActivationFile.Builder builder = ActivationFile.newBuilder(target);
508         transformActivationFile_Missing(builder, target);
509         transformActivationFile_Exists(builder, target);
510         return builder.build();
511     }
512 
513     protected void transformActivationFile_Missing(ActivationFile.Builder builder, ActivationFile target) {
514         String newVal = transform(target.getMissing());
515         builder.missing(newVal != target.getMissing() ? newVal : null);
516     }
517     protected void transformActivationFile_Exists(ActivationFile.Builder builder, ActivationFile target) {
518         String newVal = transform(target.getExists());
519         builder.exists(newVal != target.getExists() ? newVal : null);
520     }
521 
522     protected <T> List<T> transform(List<T> list, Function<T, T> transformer) {
523         List<T> newList = null;
524         for (int i = 0; i < list.size(); i++) {
525             T newVal = transformer.apply(list.get(i));
526             if (newVal != list.get(i)) {
527                 if (newList == null) {
528                     newList = new ArrayList<>(list);
529                 }
530                 newList.set(i, newVal);
531             }
532         }
533         return newList;
534     }
535 
536     protected XmlNode transform(XmlNode node) {
537         if (node != null) {
538             Xpp3Dom xpp = new Xpp3Dom(node);
539             transform(xpp);
540             return xpp.getDom();
541         }
542         return node;
543     }
544 
545     protected void transform(Xpp3Dom dom) {
546         if (dom != null) {
547             String org, val;
548             // Content
549             org = dom.getValue();
550             val = transform(org);
551             if (org != val) {
552                 dom.setValue(val);
553             }
554             // Attributes
555             for (String attr : dom.getAttributeNames()) {
556                 org = dom.getAttribute(attr);
557                 val = transform(org);
558                 if (org != val) {
559                     dom.setAttribute(attr, val);
560                 }
561             }
562             // Children
563             for (int i = 0, l = dom.getChildCount(); i < l; i++) {
564                 transform(dom.getChild(i));
565             }
566         }
567     }
568 }