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.model.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.model.Model;
25  import org.apache.maven.api.model.ModelBase;
26  import org.apache.maven.api.model.PluginContainer;
27  import org.apache.maven.api.model.PluginConfiguration;
28  import org.apache.maven.api.model.BuildBase;
29  import org.apache.maven.api.model.Build;
30  import org.apache.maven.api.model.CiManagement;
31  import org.apache.maven.api.model.Notifier;
32  import org.apache.maven.api.model.Contributor;
33  import org.apache.maven.api.model.Dependency;
34  import org.apache.maven.api.model.Developer;
35  import org.apache.maven.api.model.Exclusion;
36  import org.apache.maven.api.model.IssueManagement;
37  import org.apache.maven.api.model.DistributionManagement;
38  import org.apache.maven.api.model.License;
39  import org.apache.maven.api.model.MailingList;
40  import org.apache.maven.api.model.Organization;
41  import org.apache.maven.api.model.PatternSet;
42  import org.apache.maven.api.model.Parent;
43  import org.apache.maven.api.model.Scm;
44  import org.apache.maven.api.model.FileSet;
45  import org.apache.maven.api.model.Resource;
46  import org.apache.maven.api.model.RepositoryBase;
47  import org.apache.maven.api.model.Repository;
48  import org.apache.maven.api.model.DeploymentRepository;
49  import org.apache.maven.api.model.RepositoryPolicy;
50  import org.apache.maven.api.model.Site;
51  import org.apache.maven.api.model.ConfigurationContainer;
52  import org.apache.maven.api.model.Plugin;
53  import org.apache.maven.api.model.PluginExecution;
54  import org.apache.maven.api.model.DependencyManagement;
55  import org.apache.maven.api.model.PluginManagement;
56  import org.apache.maven.api.model.Reporting;
57  import org.apache.maven.api.model.Profile;
58  import org.apache.maven.api.model.Activation;
59  import org.apache.maven.api.model.ActivationProperty;
60  import org.apache.maven.api.model.ActivationOS;
61  import org.apache.maven.api.model.ActivationFile;
62  import org.apache.maven.api.model.ReportPlugin;
63  import org.apache.maven.api.model.ReportSet;
64  import org.apache.maven.api.model.Prerequisites;
65  import org.apache.maven.api.model.Relocation;
66  import org.apache.maven.api.model.Extension;
67  import org.apache.maven.api.model.InputLocation;
68  import org.apache.maven.api.model.InputSource;
69  import org.codehaus.plexus.util.xml.Xpp3Dom;
70  
71  @Generated
72  public class MavenTransformer {
73  
74      private final Function<String, String> transformer;
75  
76      public MavenTransformer(Function<String, String> transformer) {
77          this.transformer = transformer;
78      }
79  
80      /**
81       * Transforms the given model
82       */
83      public Model visit(Model target) {
84          Objects.requireNonNull(target, "target cannot be null");
85          return transformModel(target);
86      }
87  
88      /**
89       * The transformation function.
90       */
91      protected String transform(String value) {
92          return transformer.apply(value);
93      }
94  
95      protected Model transformModel(Model target) {
96          if (target == null) {
97              return null;
98          }
99          Model.Builder builder = Model.newBuilder(target);
100         transformModel_ModelVersion(builder, target);
101         transformModel_Parent(builder, target);
102         transformModel_GroupId(builder, target);
103         transformModel_ArtifactId(builder, target);
104         transformModel_Version(builder, target);
105         transformModel_Packaging(builder, target);
106         transformModel_Name(builder, target);
107         transformModel_Description(builder, target);
108         transformModel_Url(builder, target);
109         transformModel_ChildProjectUrlInheritAppendPath(builder, target);
110         transformModel_Root(builder, target);
111         transformModel_PreserveModelVersion(builder, target);
112         transformModel_InceptionYear(builder, target);
113         transformModel_Organization(builder, target);
114         transformModel_Licenses(builder, target);
115         transformModel_Developers(builder, target);
116         transformModel_Contributors(builder, target);
117         transformModel_MailingLists(builder, target);
118         transformModel_Prerequisites(builder, target);
119         transformModelBase_Modules(builder, target);
120         transformModel_Scm(builder, target);
121         transformModel_IssueManagement(builder, target);
122         transformModel_CiManagement(builder, target);
123         transformModelBase_DistributionManagement(builder, target);
124         transformModelBase_Properties(builder, target);
125         transformModelBase_DependencyManagement(builder, target);
126         transformModelBase_Dependencies(builder, target);
127         transformModelBase_Repositories(builder, target);
128         transformModelBase_PluginRepositories(builder, target);
129         transformModel_Build(builder, target);
130         transformModelBase_Reporting(builder, target);
131         transformModel_Profiles(builder, target);
132         return builder.build();
133     }
134 
135     protected void transformModel_ModelVersion(Model.Builder builder, Model target) {
136         String newVal = transform(target.getModelVersion());
137         builder.modelVersion(newVal != target.getModelVersion() ? newVal : null);
138     }
139     protected void transformModel_Parent(Model.Builder builder, Model target) {
140         Parent newVal = transformParent(target.getParent());
141         builder.parent(newVal != target.getParent() ? newVal : null);
142     }
143     protected void transformModel_GroupId(Model.Builder builder, Model target) {
144         String newVal = transform(target.getGroupId());
145         builder.groupId(newVal != target.getGroupId() ? newVal : null);
146     }
147     protected void transformModel_ArtifactId(Model.Builder builder, Model target) {
148         String newVal = transform(target.getArtifactId());
149         builder.artifactId(newVal != target.getArtifactId() ? newVal : null);
150     }
151     protected void transformModel_Version(Model.Builder builder, Model target) {
152         String newVal = transform(target.getVersion());
153         builder.version(newVal != target.getVersion() ? newVal : null);
154     }
155     protected void transformModel_Packaging(Model.Builder builder, Model target) {
156         String newVal = transform(target.getPackaging());
157         builder.packaging(newVal != target.getPackaging() ? newVal : null);
158     }
159     protected void transformModel_Name(Model.Builder builder, Model target) {
160         String newVal = transform(target.getName());
161         builder.name(newVal != target.getName() ? newVal : null);
162     }
163     protected void transformModel_Description(Model.Builder builder, Model target) {
164         String newVal = transform(target.getDescription());
165         builder.description(newVal != target.getDescription() ? newVal : null);
166     }
167     protected void transformModel_Url(Model.Builder builder, Model target) {
168         String newVal = transform(target.getUrl());
169         builder.url(newVal != target.getUrl() ? newVal : null);
170     }
171     protected void transformModel_ChildProjectUrlInheritAppendPath(Model.Builder builder, Model target) {
172         String newVal = transform(target.getChildProjectUrlInheritAppendPath());
173         builder.childProjectUrlInheritAppendPath(newVal != target.getChildProjectUrlInheritAppendPath() ? newVal : null);
174     }
175     protected void transformModel_Root(Model.Builder builder, Model target) {
176         // nothing to do, the transformer only handles strings
177     }
178     protected void transformModel_PreserveModelVersion(Model.Builder builder, Model target) {
179         // nothing to do, the transformer only handles strings
180     }
181     protected void transformModel_InceptionYear(Model.Builder builder, Model target) {
182         String newVal = transform(target.getInceptionYear());
183         builder.inceptionYear(newVal != target.getInceptionYear() ? newVal : null);
184     }
185     protected void transformModel_Organization(Model.Builder builder, Model target) {
186         Organization newVal = transformOrganization(target.getOrganization());
187         builder.organization(newVal != target.getOrganization() ? newVal : null);
188     }
189     protected void transformModel_Licenses(Model.Builder builder, Model target) {
190         builder.licenses(transform(target.getLicenses(), this::transformLicense));
191     }
192     protected void transformModel_Developers(Model.Builder builder, Model target) {
193         builder.developers(transform(target.getDevelopers(), this::transformDeveloper));
194     }
195     protected void transformModel_Contributors(Model.Builder builder, Model target) {
196         builder.contributors(transform(target.getContributors(), this::transformContributor));
197     }
198     protected void transformModel_MailingLists(Model.Builder builder, Model target) {
199         builder.mailingLists(transform(target.getMailingLists(), this::transformMailingList));
200     }
201     protected void transformModel_Prerequisites(Model.Builder builder, Model target) {
202         Prerequisites newVal = transformPrerequisites(target.getPrerequisites());
203         builder.prerequisites(newVal != target.getPrerequisites() ? newVal : null);
204     }
205     protected void transformModel_Modules(Model.Builder builder, Model target) {
206         builder.modules(transform(target.getModules(), this::transform));
207     }
208     protected void transformModel_Scm(Model.Builder builder, Model target) {
209         Scm newVal = transformScm(target.getScm());
210         builder.scm(newVal != target.getScm() ? newVal : null);
211     }
212     protected void transformModel_IssueManagement(Model.Builder builder, Model target) {
213         IssueManagement newVal = transformIssueManagement(target.getIssueManagement());
214         builder.issueManagement(newVal != target.getIssueManagement() ? newVal : null);
215     }
216     protected void transformModel_CiManagement(Model.Builder builder, Model target) {
217         CiManagement newVal = transformCiManagement(target.getCiManagement());
218         builder.ciManagement(newVal != target.getCiManagement() ? newVal : null);
219     }
220     protected void transformModel_DistributionManagement(Model.Builder builder, Model target) {
221         DistributionManagement newVal = transformDistributionManagement(target.getDistributionManagement());
222         builder.distributionManagement(newVal != target.getDistributionManagement() ? newVal : null);
223     }
224     protected void transformModel_Properties(Model.Builder builder, Model target) {
225         Map<String, String> props = target.getProperties();
226         Map<String, String> newProps = null;
227         for (Map.Entry<String, String> entry : props.entrySet()) {
228             String newVal = transform(entry.getValue());
229             if (newVal != null && newVal != entry.getValue()) {
230                 if (newProps == null) {
231                     newProps = new HashMap<>();
232                     newProps.putAll(props);
233                     builder.properties(newProps);
234                 }
235                 newProps.put(entry.getKey(), newVal);
236             }
237         }
238     }
239     protected void transformModel_DependencyManagement(Model.Builder builder, Model target) {
240         DependencyManagement newVal = transformDependencyManagement(target.getDependencyManagement());
241         builder.dependencyManagement(newVal != target.getDependencyManagement() ? newVal : null);
242     }
243     protected void transformModel_Dependencies(Model.Builder builder, Model target) {
244         builder.dependencies(transform(target.getDependencies(), this::transformDependency));
245     }
246     protected void transformModel_Repositories(Model.Builder builder, Model target) {
247         builder.repositories(transform(target.getRepositories(), this::transformRepository));
248     }
249     protected void transformModel_PluginRepositories(Model.Builder builder, Model target) {
250         builder.pluginRepositories(transform(target.getPluginRepositories(), this::transformRepository));
251     }
252     protected void transformModel_Build(Model.Builder builder, Model target) {
253         Build newVal = transformBuild(target.getBuild());
254         builder.build(newVal != target.getBuild() ? newVal : null);
255     }
256     protected void transformModel_Reporting(Model.Builder builder, Model target) {
257         Reporting newVal = transformReporting(target.getReporting());
258         builder.reporting(newVal != target.getReporting() ? newVal : null);
259     }
260     protected void transformModel_Profiles(Model.Builder builder, Model target) {
261         builder.profiles(transform(target.getProfiles(), this::transformProfile));
262     }
263 
264     protected ModelBase transformModelBase(ModelBase target) {
265         if (target == null) {
266             return null;
267         }
268         ModelBase.Builder builder = ModelBase.newBuilder(target);
269         transformModelBase_Modules(builder, target);
270         transformModelBase_DistributionManagement(builder, target);
271         transformModelBase_Properties(builder, target);
272         transformModelBase_DependencyManagement(builder, target);
273         transformModelBase_Dependencies(builder, target);
274         transformModelBase_Repositories(builder, target);
275         transformModelBase_PluginRepositories(builder, target);
276         transformModelBase_Reporting(builder, target);
277         return builder.build();
278     }
279 
280     protected void transformModelBase_Modules(ModelBase.Builder builder, ModelBase target) {
281         builder.modules(transform(target.getModules(), this::transform));
282     }
283     protected void transformModelBase_DistributionManagement(ModelBase.Builder builder, ModelBase target) {
284         DistributionManagement newVal = transformDistributionManagement(target.getDistributionManagement());
285         builder.distributionManagement(newVal != target.getDistributionManagement() ? newVal : null);
286     }
287     protected void transformModelBase_Properties(ModelBase.Builder builder, ModelBase target) {
288         Map<String, String> props = target.getProperties();
289         Map<String, String> newProps = null;
290         for (Map.Entry<String, String> entry : props.entrySet()) {
291             String newVal = transform(entry.getValue());
292             if (newVal != null && newVal != entry.getValue()) {
293                 if (newProps == null) {
294                     newProps = new HashMap<>();
295                     newProps.putAll(props);
296                     builder.properties(newProps);
297                 }
298                 newProps.put(entry.getKey(), newVal);
299             }
300         }
301     }
302     protected void transformModelBase_DependencyManagement(ModelBase.Builder builder, ModelBase target) {
303         DependencyManagement newVal = transformDependencyManagement(target.getDependencyManagement());
304         builder.dependencyManagement(newVal != target.getDependencyManagement() ? newVal : null);
305     }
306     protected void transformModelBase_Dependencies(ModelBase.Builder builder, ModelBase target) {
307         builder.dependencies(transform(target.getDependencies(), this::transformDependency));
308     }
309     protected void transformModelBase_Repositories(ModelBase.Builder builder, ModelBase target) {
310         builder.repositories(transform(target.getRepositories(), this::transformRepository));
311     }
312     protected void transformModelBase_PluginRepositories(ModelBase.Builder builder, ModelBase target) {
313         builder.pluginRepositories(transform(target.getPluginRepositories(), this::transformRepository));
314     }
315     protected void transformModelBase_Reporting(ModelBase.Builder builder, ModelBase target) {
316         Reporting newVal = transformReporting(target.getReporting());
317         builder.reporting(newVal != target.getReporting() ? newVal : null);
318     }
319 
320     protected PluginContainer transformPluginContainer(PluginContainer target) {
321         if (target == null) {
322             return null;
323         }
324         PluginContainer.Builder builder = PluginContainer.newBuilder(target);
325         transformPluginContainer_Plugins(builder, target);
326         return builder.build();
327     }
328 
329     protected void transformPluginContainer_Plugins(PluginContainer.Builder builder, PluginContainer target) {
330         builder.plugins(transform(target.getPlugins(), this::transformPlugin));
331     }
332 
333     protected PluginConfiguration transformPluginConfiguration(PluginConfiguration target) {
334         if (target == null) {
335             return null;
336         }
337         PluginConfiguration.Builder builder = PluginConfiguration.newBuilder(target);
338         transformPluginConfiguration_PluginManagement(builder, target);
339         transformPluginContainer_Plugins(builder, target);
340         return builder.build();
341     }
342 
343     protected void transformPluginConfiguration_PluginManagement(PluginConfiguration.Builder builder, PluginConfiguration target) {
344         PluginManagement newVal = transformPluginManagement(target.getPluginManagement());
345         builder.pluginManagement(newVal != target.getPluginManagement() ? newVal : null);
346     }
347     protected void transformPluginConfiguration_Plugins(PluginConfiguration.Builder builder, PluginConfiguration target) {
348         builder.plugins(transform(target.getPlugins(), this::transformPlugin));
349     }
350 
351     protected BuildBase transformBuildBase(BuildBase target) {
352         if (target == null) {
353             return null;
354         }
355         BuildBase.Builder builder = BuildBase.newBuilder(target);
356         transformBuildBase_DefaultGoal(builder, target);
357         transformBuildBase_Resources(builder, target);
358         transformBuildBase_TestResources(builder, target);
359         transformBuildBase_Directory(builder, target);
360         transformBuildBase_FinalName(builder, target);
361         transformBuildBase_Filters(builder, target);
362         transformPluginConfiguration_PluginManagement(builder, target);
363         transformPluginContainer_Plugins(builder, target);
364         return builder.build();
365     }
366 
367     protected void transformBuildBase_DefaultGoal(BuildBase.Builder builder, BuildBase target) {
368         String newVal = transform(target.getDefaultGoal());
369         builder.defaultGoal(newVal != target.getDefaultGoal() ? newVal : null);
370     }
371     protected void transformBuildBase_Resources(BuildBase.Builder builder, BuildBase target) {
372         builder.resources(transform(target.getResources(), this::transformResource));
373     }
374     protected void transformBuildBase_TestResources(BuildBase.Builder builder, BuildBase target) {
375         builder.testResources(transform(target.getTestResources(), this::transformResource));
376     }
377     protected void transformBuildBase_Directory(BuildBase.Builder builder, BuildBase target) {
378         String newVal = transform(target.getDirectory());
379         builder.directory(newVal != target.getDirectory() ? newVal : null);
380     }
381     protected void transformBuildBase_FinalName(BuildBase.Builder builder, BuildBase target) {
382         String newVal = transform(target.getFinalName());
383         builder.finalName(newVal != target.getFinalName() ? newVal : null);
384     }
385     protected void transformBuildBase_Filters(BuildBase.Builder builder, BuildBase target) {
386         builder.filters(transform(target.getFilters(), this::transform));
387     }
388     protected void transformBuildBase_PluginManagement(BuildBase.Builder builder, BuildBase target) {
389         PluginManagement newVal = transformPluginManagement(target.getPluginManagement());
390         builder.pluginManagement(newVal != target.getPluginManagement() ? newVal : null);
391     }
392     protected void transformBuildBase_Plugins(BuildBase.Builder builder, BuildBase target) {
393         builder.plugins(transform(target.getPlugins(), this::transformPlugin));
394     }
395 
396     protected Build transformBuild(Build target) {
397         if (target == null) {
398             return null;
399         }
400         Build.Builder builder = Build.newBuilder(target);
401         transformBuild_SourceDirectory(builder, target);
402         transformBuild_ScriptSourceDirectory(builder, target);
403         transformBuild_TestSourceDirectory(builder, target);
404         transformBuild_OutputDirectory(builder, target);
405         transformBuild_TestOutputDirectory(builder, target);
406         transformBuild_Extensions(builder, target);
407         transformBuildBase_DefaultGoal(builder, target);
408         transformBuildBase_Resources(builder, target);
409         transformBuildBase_TestResources(builder, target);
410         transformBuildBase_Directory(builder, target);
411         transformBuildBase_FinalName(builder, target);
412         transformBuildBase_Filters(builder, target);
413         transformPluginConfiguration_PluginManagement(builder, target);
414         transformPluginContainer_Plugins(builder, target);
415         return builder.build();
416     }
417 
418     protected void transformBuild_SourceDirectory(Build.Builder builder, Build target) {
419         String newVal = transform(target.getSourceDirectory());
420         builder.sourceDirectory(newVal != target.getSourceDirectory() ? newVal : null);
421     }
422     protected void transformBuild_ScriptSourceDirectory(Build.Builder builder, Build target) {
423         String newVal = transform(target.getScriptSourceDirectory());
424         builder.scriptSourceDirectory(newVal != target.getScriptSourceDirectory() ? newVal : null);
425     }
426     protected void transformBuild_TestSourceDirectory(Build.Builder builder, Build target) {
427         String newVal = transform(target.getTestSourceDirectory());
428         builder.testSourceDirectory(newVal != target.getTestSourceDirectory() ? newVal : null);
429     }
430     protected void transformBuild_OutputDirectory(Build.Builder builder, Build target) {
431         String newVal = transform(target.getOutputDirectory());
432         builder.outputDirectory(newVal != target.getOutputDirectory() ? newVal : null);
433     }
434     protected void transformBuild_TestOutputDirectory(Build.Builder builder, Build target) {
435         String newVal = transform(target.getTestOutputDirectory());
436         builder.testOutputDirectory(newVal != target.getTestOutputDirectory() ? newVal : null);
437     }
438     protected void transformBuild_Extensions(Build.Builder builder, Build target) {
439         builder.extensions(transform(target.getExtensions(), this::transformExtension));
440     }
441     protected void transformBuild_DefaultGoal(Build.Builder builder, Build target) {
442         String newVal = transform(target.getDefaultGoal());
443         builder.defaultGoal(newVal != target.getDefaultGoal() ? newVal : null);
444     }
445     protected void transformBuild_Resources(Build.Builder builder, Build target) {
446         builder.resources(transform(target.getResources(), this::transformResource));
447     }
448     protected void transformBuild_TestResources(Build.Builder builder, Build target) {
449         builder.testResources(transform(target.getTestResources(), this::transformResource));
450     }
451     protected void transformBuild_Directory(Build.Builder builder, Build target) {
452         String newVal = transform(target.getDirectory());
453         builder.directory(newVal != target.getDirectory() ? newVal : null);
454     }
455     protected void transformBuild_FinalName(Build.Builder builder, Build target) {
456         String newVal = transform(target.getFinalName());
457         builder.finalName(newVal != target.getFinalName() ? newVal : null);
458     }
459     protected void transformBuild_Filters(Build.Builder builder, Build target) {
460         builder.filters(transform(target.getFilters(), this::transform));
461     }
462     protected void transformBuild_PluginManagement(Build.Builder builder, Build target) {
463         PluginManagement newVal = transformPluginManagement(target.getPluginManagement());
464         builder.pluginManagement(newVal != target.getPluginManagement() ? newVal : null);
465     }
466     protected void transformBuild_Plugins(Build.Builder builder, Build target) {
467         builder.plugins(transform(target.getPlugins(), this::transformPlugin));
468     }
469 
470     protected CiManagement transformCiManagement(CiManagement target) {
471         if (target == null) {
472             return null;
473         }
474         CiManagement.Builder builder = CiManagement.newBuilder(target);
475         transformCiManagement_System(builder, target);
476         transformCiManagement_Url(builder, target);
477         transformCiManagement_Notifiers(builder, target);
478         return builder.build();
479     }
480 
481     protected void transformCiManagement_System(CiManagement.Builder builder, CiManagement target) {
482         String newVal = transform(target.getSystem());
483         builder.system(newVal != target.getSystem() ? newVal : null);
484     }
485     protected void transformCiManagement_Url(CiManagement.Builder builder, CiManagement target) {
486         String newVal = transform(target.getUrl());
487         builder.url(newVal != target.getUrl() ? newVal : null);
488     }
489     protected void transformCiManagement_Notifiers(CiManagement.Builder builder, CiManagement target) {
490         builder.notifiers(transform(target.getNotifiers(), this::transformNotifier));
491     }
492 
493     protected Notifier transformNotifier(Notifier target) {
494         if (target == null) {
495             return null;
496         }
497         Notifier.Builder builder = Notifier.newBuilder(target);
498         transformNotifier_Type(builder, target);
499         transformNotifier_SendOnError(builder, target);
500         transformNotifier_SendOnFailure(builder, target);
501         transformNotifier_SendOnSuccess(builder, target);
502         transformNotifier_SendOnWarning(builder, target);
503         transformNotifier_Address(builder, target);
504         transformNotifier_Configuration(builder, target);
505         return builder.build();
506     }
507 
508     protected void transformNotifier_Type(Notifier.Builder builder, Notifier target) {
509         String newVal = transform(target.getType());
510         builder.type(newVal != target.getType() ? newVal : null);
511     }
512     protected void transformNotifier_SendOnError(Notifier.Builder builder, Notifier target) {
513         // nothing to do, the transformer only handles strings
514     }
515     protected void transformNotifier_SendOnFailure(Notifier.Builder builder, Notifier target) {
516         // nothing to do, the transformer only handles strings
517     }
518     protected void transformNotifier_SendOnSuccess(Notifier.Builder builder, Notifier target) {
519         // nothing to do, the transformer only handles strings
520     }
521     protected void transformNotifier_SendOnWarning(Notifier.Builder builder, Notifier target) {
522         // nothing to do, the transformer only handles strings
523     }
524     protected void transformNotifier_Address(Notifier.Builder builder, Notifier target) {
525         String newVal = transform(target.getAddress());
526         builder.address(newVal != target.getAddress() ? newVal : null);
527     }
528     protected void transformNotifier_Configuration(Notifier.Builder builder, Notifier target) {
529         Map<String, String> props = target.getConfiguration();
530         Map<String, String> newProps = null;
531         for (Map.Entry<String, String> entry : props.entrySet()) {
532             String newVal = transform(entry.getValue());
533             if (newVal != null && newVal != entry.getValue()) {
534                 if (newProps == null) {
535                     newProps = new HashMap<>();
536                     newProps.putAll(props);
537                     builder.configuration(newProps);
538                 }
539                 newProps.put(entry.getKey(), newVal);
540             }
541         }
542     }
543 
544     protected Contributor transformContributor(Contributor target) {
545         if (target == null) {
546             return null;
547         }
548         Contributor.Builder builder = Contributor.newBuilder(target);
549         transformContributor_Name(builder, target);
550         transformContributor_Email(builder, target);
551         transformContributor_Url(builder, target);
552         transformContributor_Organization(builder, target);
553         transformContributor_OrganizationUrl(builder, target);
554         transformContributor_Roles(builder, target);
555         transformContributor_Timezone(builder, target);
556         transformContributor_Properties(builder, target);
557         return builder.build();
558     }
559 
560     protected void transformContributor_Name(Contributor.Builder builder, Contributor target) {
561         String newVal = transform(target.getName());
562         builder.name(newVal != target.getName() ? newVal : null);
563     }
564     protected void transformContributor_Email(Contributor.Builder builder, Contributor target) {
565         String newVal = transform(target.getEmail());
566         builder.email(newVal != target.getEmail() ? newVal : null);
567     }
568     protected void transformContributor_Url(Contributor.Builder builder, Contributor target) {
569         String newVal = transform(target.getUrl());
570         builder.url(newVal != target.getUrl() ? newVal : null);
571     }
572     protected void transformContributor_Organization(Contributor.Builder builder, Contributor target) {
573         String newVal = transform(target.getOrganization());
574         builder.organization(newVal != target.getOrganization() ? newVal : null);
575     }
576     protected void transformContributor_OrganizationUrl(Contributor.Builder builder, Contributor target) {
577         String newVal = transform(target.getOrganizationUrl());
578         builder.organizationUrl(newVal != target.getOrganizationUrl() ? newVal : null);
579     }
580     protected void transformContributor_Roles(Contributor.Builder builder, Contributor target) {
581         builder.roles(transform(target.getRoles(), this::transform));
582     }
583     protected void transformContributor_Timezone(Contributor.Builder builder, Contributor target) {
584         String newVal = transform(target.getTimezone());
585         builder.timezone(newVal != target.getTimezone() ? newVal : null);
586     }
587     protected void transformContributor_Properties(Contributor.Builder builder, Contributor target) {
588         Map<String, String> props = target.getProperties();
589         Map<String, String> newProps = null;
590         for (Map.Entry<String, String> entry : props.entrySet()) {
591             String newVal = transform(entry.getValue());
592             if (newVal != null && newVal != entry.getValue()) {
593                 if (newProps == null) {
594                     newProps = new HashMap<>();
595                     newProps.putAll(props);
596                     builder.properties(newProps);
597                 }
598                 newProps.put(entry.getKey(), newVal);
599             }
600         }
601     }
602 
603     protected Dependency transformDependency(Dependency target) {
604         if (target == null) {
605             return null;
606         }
607         Dependency.Builder builder = Dependency.newBuilder(target);
608         transformDependency_GroupId(builder, target);
609         transformDependency_ArtifactId(builder, target);
610         transformDependency_Version(builder, target);
611         transformDependency_Type(builder, target);
612         transformDependency_Classifier(builder, target);
613         transformDependency_Scope(builder, target);
614         transformDependency_SystemPath(builder, target);
615         transformDependency_Exclusions(builder, target);
616         transformDependency_Optional(builder, target);
617         return builder.build();
618     }
619 
620     protected void transformDependency_GroupId(Dependency.Builder builder, Dependency target) {
621         String newVal = transform(target.getGroupId());
622         builder.groupId(newVal != target.getGroupId() ? newVal : null);
623     }
624     protected void transformDependency_ArtifactId(Dependency.Builder builder, Dependency target) {
625         String newVal = transform(target.getArtifactId());
626         builder.artifactId(newVal != target.getArtifactId() ? newVal : null);
627     }
628     protected void transformDependency_Version(Dependency.Builder builder, Dependency target) {
629         String newVal = transform(target.getVersion());
630         builder.version(newVal != target.getVersion() ? newVal : null);
631     }
632     protected void transformDependency_Type(Dependency.Builder builder, Dependency target) {
633         String newVal = transform(target.getType());
634         builder.type(newVal != target.getType() ? newVal : null);
635     }
636     protected void transformDependency_Classifier(Dependency.Builder builder, Dependency target) {
637         String newVal = transform(target.getClassifier());
638         builder.classifier(newVal != target.getClassifier() ? newVal : null);
639     }
640     protected void transformDependency_Scope(Dependency.Builder builder, Dependency target) {
641         String newVal = transform(target.getScope());
642         builder.scope(newVal != target.getScope() ? newVal : null);
643     }
644     protected void transformDependency_SystemPath(Dependency.Builder builder, Dependency target) {
645         String newVal = transform(target.getSystemPath());
646         builder.systemPath(newVal != target.getSystemPath() ? newVal : null);
647     }
648     protected void transformDependency_Exclusions(Dependency.Builder builder, Dependency target) {
649         builder.exclusions(transform(target.getExclusions(), this::transformExclusion));
650     }
651     protected void transformDependency_Optional(Dependency.Builder builder, Dependency target) {
652         String newVal = transform(target.getOptional());
653         builder.optional(newVal != target.getOptional() ? newVal : null);
654     }
655 
656     protected Developer transformDeveloper(Developer target) {
657         if (target == null) {
658             return null;
659         }
660         Developer.Builder builder = Developer.newBuilder(target);
661         transformDeveloper_Id(builder, target);
662         transformContributor_Name(builder, target);
663         transformContributor_Email(builder, target);
664         transformContributor_Url(builder, target);
665         transformContributor_Organization(builder, target);
666         transformContributor_OrganizationUrl(builder, target);
667         transformContributor_Roles(builder, target);
668         transformContributor_Timezone(builder, target);
669         transformContributor_Properties(builder, target);
670         return builder.build();
671     }
672 
673     protected void transformDeveloper_Id(Developer.Builder builder, Developer target) {
674         String newVal = transform(target.getId());
675         builder.id(newVal != target.getId() ? newVal : null);
676     }
677     protected void transformDeveloper_Name(Developer.Builder builder, Developer target) {
678         String newVal = transform(target.getName());
679         builder.name(newVal != target.getName() ? newVal : null);
680     }
681     protected void transformDeveloper_Email(Developer.Builder builder, Developer target) {
682         String newVal = transform(target.getEmail());
683         builder.email(newVal != target.getEmail() ? newVal : null);
684     }
685     protected void transformDeveloper_Url(Developer.Builder builder, Developer target) {
686         String newVal = transform(target.getUrl());
687         builder.url(newVal != target.getUrl() ? newVal : null);
688     }
689     protected void transformDeveloper_Organization(Developer.Builder builder, Developer target) {
690         String newVal = transform(target.getOrganization());
691         builder.organization(newVal != target.getOrganization() ? newVal : null);
692     }
693     protected void transformDeveloper_OrganizationUrl(Developer.Builder builder, Developer target) {
694         String newVal = transform(target.getOrganizationUrl());
695         builder.organizationUrl(newVal != target.getOrganizationUrl() ? newVal : null);
696     }
697     protected void transformDeveloper_Roles(Developer.Builder builder, Developer target) {
698         builder.roles(transform(target.getRoles(), this::transform));
699     }
700     protected void transformDeveloper_Timezone(Developer.Builder builder, Developer target) {
701         String newVal = transform(target.getTimezone());
702         builder.timezone(newVal != target.getTimezone() ? newVal : null);
703     }
704     protected void transformDeveloper_Properties(Developer.Builder builder, Developer target) {
705         Map<String, String> props = target.getProperties();
706         Map<String, String> newProps = null;
707         for (Map.Entry<String, String> entry : props.entrySet()) {
708             String newVal = transform(entry.getValue());
709             if (newVal != null && newVal != entry.getValue()) {
710                 if (newProps == null) {
711                     newProps = new HashMap<>();
712                     newProps.putAll(props);
713                     builder.properties(newProps);
714                 }
715                 newProps.put(entry.getKey(), newVal);
716             }
717         }
718     }
719 
720     protected Exclusion transformExclusion(Exclusion target) {
721         if (target == null) {
722             return null;
723         }
724         Exclusion.Builder builder = Exclusion.newBuilder(target);
725         transformExclusion_GroupId(builder, target);
726         transformExclusion_ArtifactId(builder, target);
727         return builder.build();
728     }
729 
730     protected void transformExclusion_GroupId(Exclusion.Builder builder, Exclusion target) {
731         String newVal = transform(target.getGroupId());
732         builder.groupId(newVal != target.getGroupId() ? newVal : null);
733     }
734     protected void transformExclusion_ArtifactId(Exclusion.Builder builder, Exclusion target) {
735         String newVal = transform(target.getArtifactId());
736         builder.artifactId(newVal != target.getArtifactId() ? newVal : null);
737     }
738 
739     protected IssueManagement transformIssueManagement(IssueManagement target) {
740         if (target == null) {
741             return null;
742         }
743         IssueManagement.Builder builder = IssueManagement.newBuilder(target);
744         transformIssueManagement_System(builder, target);
745         transformIssueManagement_Url(builder, target);
746         return builder.build();
747     }
748 
749     protected void transformIssueManagement_System(IssueManagement.Builder builder, IssueManagement target) {
750         String newVal = transform(target.getSystem());
751         builder.system(newVal != target.getSystem() ? newVal : null);
752     }
753     protected void transformIssueManagement_Url(IssueManagement.Builder builder, IssueManagement target) {
754         String newVal = transform(target.getUrl());
755         builder.url(newVal != target.getUrl() ? newVal : null);
756     }
757 
758     protected DistributionManagement transformDistributionManagement(DistributionManagement target) {
759         if (target == null) {
760             return null;
761         }
762         DistributionManagement.Builder builder = DistributionManagement.newBuilder(target);
763         transformDistributionManagement_Repository(builder, target);
764         transformDistributionManagement_SnapshotRepository(builder, target);
765         transformDistributionManagement_Site(builder, target);
766         transformDistributionManagement_DownloadUrl(builder, target);
767         transformDistributionManagement_Relocation(builder, target);
768         transformDistributionManagement_Status(builder, target);
769         return builder.build();
770     }
771 
772     protected void transformDistributionManagement_Repository(DistributionManagement.Builder builder, DistributionManagement target) {
773         DeploymentRepository newVal = transformDeploymentRepository(target.getRepository());
774         builder.repository(newVal != target.getRepository() ? newVal : null);
775     }
776     protected void transformDistributionManagement_SnapshotRepository(DistributionManagement.Builder builder, DistributionManagement target) {
777         DeploymentRepository newVal = transformDeploymentRepository(target.getSnapshotRepository());
778         builder.snapshotRepository(newVal != target.getSnapshotRepository() ? newVal : null);
779     }
780     protected void transformDistributionManagement_Site(DistributionManagement.Builder builder, DistributionManagement target) {
781         Site newVal = transformSite(target.getSite());
782         builder.site(newVal != target.getSite() ? newVal : null);
783     }
784     protected void transformDistributionManagement_DownloadUrl(DistributionManagement.Builder builder, DistributionManagement target) {
785         String newVal = transform(target.getDownloadUrl());
786         builder.downloadUrl(newVal != target.getDownloadUrl() ? newVal : null);
787     }
788     protected void transformDistributionManagement_Relocation(DistributionManagement.Builder builder, DistributionManagement target) {
789         Relocation newVal = transformRelocation(target.getRelocation());
790         builder.relocation(newVal != target.getRelocation() ? newVal : null);
791     }
792     protected void transformDistributionManagement_Status(DistributionManagement.Builder builder, DistributionManagement target) {
793         String newVal = transform(target.getStatus());
794         builder.status(newVal != target.getStatus() ? newVal : null);
795     }
796 
797     protected License transformLicense(License target) {
798         if (target == null) {
799             return null;
800         }
801         License.Builder builder = License.newBuilder(target);
802         transformLicense_Name(builder, target);
803         transformLicense_Url(builder, target);
804         transformLicense_Distribution(builder, target);
805         transformLicense_Comments(builder, target);
806         return builder.build();
807     }
808 
809     protected void transformLicense_Name(License.Builder builder, License target) {
810         String newVal = transform(target.getName());
811         builder.name(newVal != target.getName() ? newVal : null);
812     }
813     protected void transformLicense_Url(License.Builder builder, License target) {
814         String newVal = transform(target.getUrl());
815         builder.url(newVal != target.getUrl() ? newVal : null);
816     }
817     protected void transformLicense_Distribution(License.Builder builder, License target) {
818         String newVal = transform(target.getDistribution());
819         builder.distribution(newVal != target.getDistribution() ? newVal : null);
820     }
821     protected void transformLicense_Comments(License.Builder builder, License target) {
822         String newVal = transform(target.getComments());
823         builder.comments(newVal != target.getComments() ? newVal : null);
824     }
825 
826     protected MailingList transformMailingList(MailingList target) {
827         if (target == null) {
828             return null;
829         }
830         MailingList.Builder builder = MailingList.newBuilder(target);
831         transformMailingList_Name(builder, target);
832         transformMailingList_Subscribe(builder, target);
833         transformMailingList_Unsubscribe(builder, target);
834         transformMailingList_Post(builder, target);
835         transformMailingList_Archive(builder, target);
836         transformMailingList_OtherArchives(builder, target);
837         return builder.build();
838     }
839 
840     protected void transformMailingList_Name(MailingList.Builder builder, MailingList target) {
841         String newVal = transform(target.getName());
842         builder.name(newVal != target.getName() ? newVal : null);
843     }
844     protected void transformMailingList_Subscribe(MailingList.Builder builder, MailingList target) {
845         String newVal = transform(target.getSubscribe());
846         builder.subscribe(newVal != target.getSubscribe() ? newVal : null);
847     }
848     protected void transformMailingList_Unsubscribe(MailingList.Builder builder, MailingList target) {
849         String newVal = transform(target.getUnsubscribe());
850         builder.unsubscribe(newVal != target.getUnsubscribe() ? newVal : null);
851     }
852     protected void transformMailingList_Post(MailingList.Builder builder, MailingList target) {
853         String newVal = transform(target.getPost());
854         builder.post(newVal != target.getPost() ? newVal : null);
855     }
856     protected void transformMailingList_Archive(MailingList.Builder builder, MailingList target) {
857         String newVal = transform(target.getArchive());
858         builder.archive(newVal != target.getArchive() ? newVal : null);
859     }
860     protected void transformMailingList_OtherArchives(MailingList.Builder builder, MailingList target) {
861         builder.otherArchives(transform(target.getOtherArchives(), this::transform));
862     }
863 
864     protected Organization transformOrganization(Organization target) {
865         if (target == null) {
866             return null;
867         }
868         Organization.Builder builder = Organization.newBuilder(target);
869         transformOrganization_Name(builder, target);
870         transformOrganization_Url(builder, target);
871         return builder.build();
872     }
873 
874     protected void transformOrganization_Name(Organization.Builder builder, Organization target) {
875         String newVal = transform(target.getName());
876         builder.name(newVal != target.getName() ? newVal : null);
877     }
878     protected void transformOrganization_Url(Organization.Builder builder, Organization target) {
879         String newVal = transform(target.getUrl());
880         builder.url(newVal != target.getUrl() ? newVal : null);
881     }
882 
883     protected PatternSet transformPatternSet(PatternSet target) {
884         if (target == null) {
885             return null;
886         }
887         PatternSet.Builder builder = PatternSet.newBuilder(target);
888         transformPatternSet_Includes(builder, target);
889         transformPatternSet_Excludes(builder, target);
890         return builder.build();
891     }
892 
893     protected void transformPatternSet_Includes(PatternSet.Builder builder, PatternSet target) {
894         builder.includes(transform(target.getIncludes(), this::transform));
895     }
896     protected void transformPatternSet_Excludes(PatternSet.Builder builder, PatternSet target) {
897         builder.excludes(transform(target.getExcludes(), this::transform));
898     }
899 
900     protected Parent transformParent(Parent target) {
901         if (target == null) {
902             return null;
903         }
904         Parent.Builder builder = Parent.newBuilder(target);
905         transformParent_GroupId(builder, target);
906         transformParent_ArtifactId(builder, target);
907         transformParent_Version(builder, target);
908         transformParent_RelativePath(builder, target);
909         return builder.build();
910     }
911 
912     protected void transformParent_GroupId(Parent.Builder builder, Parent target) {
913         String newVal = transform(target.getGroupId());
914         builder.groupId(newVal != target.getGroupId() ? newVal : null);
915     }
916     protected void transformParent_ArtifactId(Parent.Builder builder, Parent target) {
917         String newVal = transform(target.getArtifactId());
918         builder.artifactId(newVal != target.getArtifactId() ? newVal : null);
919     }
920     protected void transformParent_Version(Parent.Builder builder, Parent target) {
921         String newVal = transform(target.getVersion());
922         builder.version(newVal != target.getVersion() ? newVal : null);
923     }
924     protected void transformParent_RelativePath(Parent.Builder builder, Parent target) {
925         String newVal = transform(target.getRelativePath());
926         builder.relativePath(newVal != target.getRelativePath() ? newVal : null);
927     }
928 
929     protected Scm transformScm(Scm target) {
930         if (target == null) {
931             return null;
932         }
933         Scm.Builder builder = Scm.newBuilder(target);
934         transformScm_Connection(builder, target);
935         transformScm_DeveloperConnection(builder, target);
936         transformScm_Tag(builder, target);
937         transformScm_Url(builder, target);
938         transformScm_ChildScmConnectionInheritAppendPath(builder, target);
939         transformScm_ChildScmDeveloperConnectionInheritAppendPath(builder, target);
940         transformScm_ChildScmUrlInheritAppendPath(builder, target);
941         return builder.build();
942     }
943 
944     protected void transformScm_Connection(Scm.Builder builder, Scm target) {
945         String newVal = transform(target.getConnection());
946         builder.connection(newVal != target.getConnection() ? newVal : null);
947     }
948     protected void transformScm_DeveloperConnection(Scm.Builder builder, Scm target) {
949         String newVal = transform(target.getDeveloperConnection());
950         builder.developerConnection(newVal != target.getDeveloperConnection() ? newVal : null);
951     }
952     protected void transformScm_Tag(Scm.Builder builder, Scm target) {
953         String newVal = transform(target.getTag());
954         builder.tag(newVal != target.getTag() ? newVal : null);
955     }
956     protected void transformScm_Url(Scm.Builder builder, Scm target) {
957         String newVal = transform(target.getUrl());
958         builder.url(newVal != target.getUrl() ? newVal : null);
959     }
960     protected void transformScm_ChildScmConnectionInheritAppendPath(Scm.Builder builder, Scm target) {
961         String newVal = transform(target.getChildScmConnectionInheritAppendPath());
962         builder.childScmConnectionInheritAppendPath(newVal != target.getChildScmConnectionInheritAppendPath() ? newVal : null);
963     }
964     protected void transformScm_ChildScmDeveloperConnectionInheritAppendPath(Scm.Builder builder, Scm target) {
965         String newVal = transform(target.getChildScmDeveloperConnectionInheritAppendPath());
966         builder.childScmDeveloperConnectionInheritAppendPath(newVal != target.getChildScmDeveloperConnectionInheritAppendPath() ? newVal : null);
967     }
968     protected void transformScm_ChildScmUrlInheritAppendPath(Scm.Builder builder, Scm target) {
969         String newVal = transform(target.getChildScmUrlInheritAppendPath());
970         builder.childScmUrlInheritAppendPath(newVal != target.getChildScmUrlInheritAppendPath() ? newVal : null);
971     }
972 
973     protected FileSet transformFileSet(FileSet target) {
974         if (target == null) {
975             return null;
976         }
977         FileSet.Builder builder = FileSet.newBuilder(target);
978         transformFileSet_Directory(builder, target);
979         transformPatternSet_Includes(builder, target);
980         transformPatternSet_Excludes(builder, target);
981         return builder.build();
982     }
983 
984     protected void transformFileSet_Directory(FileSet.Builder builder, FileSet target) {
985         String newVal = transform(target.getDirectory());
986         builder.directory(newVal != target.getDirectory() ? newVal : null);
987     }
988     protected void transformFileSet_Includes(FileSet.Builder builder, FileSet target) {
989         builder.includes(transform(target.getIncludes(), this::transform));
990     }
991     protected void transformFileSet_Excludes(FileSet.Builder builder, FileSet target) {
992         builder.excludes(transform(target.getExcludes(), this::transform));
993     }
994 
995     protected Resource transformResource(Resource target) {
996         if (target == null) {
997             return null;
998         }
999         Resource.Builder builder = Resource.newBuilder(target);
1000         transformResource_TargetPath(builder, target);
1001         transformResource_Filtering(builder, target);
1002         transformFileSet_Directory(builder, target);
1003         transformPatternSet_Includes(builder, target);
1004         transformPatternSet_Excludes(builder, target);
1005         return builder.build();
1006     }
1007 
1008     protected void transformResource_TargetPath(Resource.Builder builder, Resource target) {
1009         String newVal = transform(target.getTargetPath());
1010         builder.targetPath(newVal != target.getTargetPath() ? newVal : null);
1011     }
1012     protected void transformResource_Filtering(Resource.Builder builder, Resource target) {
1013         String newVal = transform(target.getFiltering());
1014         builder.filtering(newVal != target.getFiltering() ? newVal : null);
1015     }
1016     protected void transformResource_Directory(Resource.Builder builder, Resource target) {
1017         String newVal = transform(target.getDirectory());
1018         builder.directory(newVal != target.getDirectory() ? newVal : null);
1019     }
1020     protected void transformResource_Includes(Resource.Builder builder, Resource target) {
1021         builder.includes(transform(target.getIncludes(), this::transform));
1022     }
1023     protected void transformResource_Excludes(Resource.Builder builder, Resource target) {
1024         builder.excludes(transform(target.getExcludes(), this::transform));
1025     }
1026 
1027     protected RepositoryBase transformRepositoryBase(RepositoryBase target) {
1028         if (target == null) {
1029             return null;
1030         }
1031         RepositoryBase.Builder builder = RepositoryBase.newBuilder(target);
1032         transformRepositoryBase_Id(builder, target);
1033         transformRepositoryBase_Name(builder, target);
1034         transformRepositoryBase_Url(builder, target);
1035         transformRepositoryBase_Layout(builder, target);
1036         return builder.build();
1037     }
1038 
1039     protected void transformRepositoryBase_Id(RepositoryBase.Builder builder, RepositoryBase target) {
1040         String newVal = transform(target.getId());
1041         builder.id(newVal != target.getId() ? newVal : null);
1042     }
1043     protected void transformRepositoryBase_Name(RepositoryBase.Builder builder, RepositoryBase target) {
1044         String newVal = transform(target.getName());
1045         builder.name(newVal != target.getName() ? newVal : null);
1046     }
1047     protected void transformRepositoryBase_Url(RepositoryBase.Builder builder, RepositoryBase target) {
1048         String newVal = transform(target.getUrl());
1049         builder.url(newVal != target.getUrl() ? newVal : null);
1050     }
1051     protected void transformRepositoryBase_Layout(RepositoryBase.Builder builder, RepositoryBase target) {
1052         String newVal = transform(target.getLayout());
1053         builder.layout(newVal != target.getLayout() ? newVal : null);
1054     }
1055 
1056     protected Repository transformRepository(Repository target) {
1057         if (target == null) {
1058             return null;
1059         }
1060         Repository.Builder builder = Repository.newBuilder(target);
1061         transformRepository_Releases(builder, target);
1062         transformRepository_Snapshots(builder, target);
1063         transformRepositoryBase_Id(builder, target);
1064         transformRepositoryBase_Name(builder, target);
1065         transformRepositoryBase_Url(builder, target);
1066         transformRepositoryBase_Layout(builder, target);
1067         return builder.build();
1068     }
1069 
1070     protected void transformRepository_Releases(Repository.Builder builder, Repository target) {
1071         RepositoryPolicy newVal = transformRepositoryPolicy(target.getReleases());
1072         builder.releases(newVal != target.getReleases() ? newVal : null);
1073     }
1074     protected void transformRepository_Snapshots(Repository.Builder builder, Repository target) {
1075         RepositoryPolicy newVal = transformRepositoryPolicy(target.getSnapshots());
1076         builder.snapshots(newVal != target.getSnapshots() ? newVal : null);
1077     }
1078     protected void transformRepository_Id(Repository.Builder builder, Repository target) {
1079         String newVal = transform(target.getId());
1080         builder.id(newVal != target.getId() ? newVal : null);
1081     }
1082     protected void transformRepository_Name(Repository.Builder builder, Repository target) {
1083         String newVal = transform(target.getName());
1084         builder.name(newVal != target.getName() ? newVal : null);
1085     }
1086     protected void transformRepository_Url(Repository.Builder builder, Repository target) {
1087         String newVal = transform(target.getUrl());
1088         builder.url(newVal != target.getUrl() ? newVal : null);
1089     }
1090     protected void transformRepository_Layout(Repository.Builder builder, Repository target) {
1091         String newVal = transform(target.getLayout());
1092         builder.layout(newVal != target.getLayout() ? newVal : null);
1093     }
1094 
1095     protected DeploymentRepository transformDeploymentRepository(DeploymentRepository target) {
1096         if (target == null) {
1097             return null;
1098         }
1099         DeploymentRepository.Builder builder = DeploymentRepository.newBuilder(target);
1100         transformDeploymentRepository_UniqueVersion(builder, target);
1101         transformRepository_Releases(builder, target);
1102         transformRepository_Snapshots(builder, target);
1103         transformRepositoryBase_Id(builder, target);
1104         transformRepositoryBase_Name(builder, target);
1105         transformRepositoryBase_Url(builder, target);
1106         transformRepositoryBase_Layout(builder, target);
1107         return builder.build();
1108     }
1109 
1110     protected void transformDeploymentRepository_UniqueVersion(DeploymentRepository.Builder builder, DeploymentRepository target) {
1111         // nothing to do, the transformer only handles strings
1112     }
1113     protected void transformDeploymentRepository_Releases(DeploymentRepository.Builder builder, DeploymentRepository target) {
1114         RepositoryPolicy newVal = transformRepositoryPolicy(target.getReleases());
1115         builder.releases(newVal != target.getReleases() ? newVal : null);
1116     }
1117     protected void transformDeploymentRepository_Snapshots(DeploymentRepository.Builder builder, DeploymentRepository target) {
1118         RepositoryPolicy newVal = transformRepositoryPolicy(target.getSnapshots());
1119         builder.snapshots(newVal != target.getSnapshots() ? newVal : null);
1120     }
1121     protected void transformDeploymentRepository_Id(DeploymentRepository.Builder builder, DeploymentRepository target) {
1122         String newVal = transform(target.getId());
1123         builder.id(newVal != target.getId() ? newVal : null);
1124     }
1125     protected void transformDeploymentRepository_Name(DeploymentRepository.Builder builder, DeploymentRepository target) {
1126         String newVal = transform(target.getName());
1127         builder.name(newVal != target.getName() ? newVal : null);
1128     }
1129     protected void transformDeploymentRepository_Url(DeploymentRepository.Builder builder, DeploymentRepository target) {
1130         String newVal = transform(target.getUrl());
1131         builder.url(newVal != target.getUrl() ? newVal : null);
1132     }
1133     protected void transformDeploymentRepository_Layout(DeploymentRepository.Builder builder, DeploymentRepository target) {
1134         String newVal = transform(target.getLayout());
1135         builder.layout(newVal != target.getLayout() ? newVal : null);
1136     }
1137 
1138     protected RepositoryPolicy transformRepositoryPolicy(RepositoryPolicy target) {
1139         if (target == null) {
1140             return null;
1141         }
1142         RepositoryPolicy.Builder builder = RepositoryPolicy.newBuilder(target);
1143         transformRepositoryPolicy_Enabled(builder, target);
1144         transformRepositoryPolicy_UpdatePolicy(builder, target);
1145         transformRepositoryPolicy_ChecksumPolicy(builder, target);
1146         return builder.build();
1147     }
1148 
1149     protected void transformRepositoryPolicy_Enabled(RepositoryPolicy.Builder builder, RepositoryPolicy target) {
1150         String newVal = transform(target.getEnabled());
1151         builder.enabled(newVal != target.getEnabled() ? newVal : null);
1152     }
1153     protected void transformRepositoryPolicy_UpdatePolicy(RepositoryPolicy.Builder builder, RepositoryPolicy target) {
1154         String newVal = transform(target.getUpdatePolicy());
1155         builder.updatePolicy(newVal != target.getUpdatePolicy() ? newVal : null);
1156     }
1157     protected void transformRepositoryPolicy_ChecksumPolicy(RepositoryPolicy.Builder builder, RepositoryPolicy target) {
1158         String newVal = transform(target.getChecksumPolicy());
1159         builder.checksumPolicy(newVal != target.getChecksumPolicy() ? newVal : null);
1160     }
1161 
1162     protected Site transformSite(Site target) {
1163         if (target == null) {
1164             return null;
1165         }
1166         Site.Builder builder = Site.newBuilder(target);
1167         transformSite_Id(builder, target);
1168         transformSite_Name(builder, target);
1169         transformSite_Url(builder, target);
1170         transformSite_ChildSiteUrlInheritAppendPath(builder, target);
1171         return builder.build();
1172     }
1173 
1174     protected void transformSite_Id(Site.Builder builder, Site target) {
1175         String newVal = transform(target.getId());
1176         builder.id(newVal != target.getId() ? newVal : null);
1177     }
1178     protected void transformSite_Name(Site.Builder builder, Site target) {
1179         String newVal = transform(target.getName());
1180         builder.name(newVal != target.getName() ? newVal : null);
1181     }
1182     protected void transformSite_Url(Site.Builder builder, Site target) {
1183         String newVal = transform(target.getUrl());
1184         builder.url(newVal != target.getUrl() ? newVal : null);
1185     }
1186     protected void transformSite_ChildSiteUrlInheritAppendPath(Site.Builder builder, Site target) {
1187         String newVal = transform(target.getChildSiteUrlInheritAppendPath());
1188         builder.childSiteUrlInheritAppendPath(newVal != target.getChildSiteUrlInheritAppendPath() ? newVal : null);
1189     }
1190 
1191     protected ConfigurationContainer transformConfigurationContainer(ConfigurationContainer target) {
1192         if (target == null) {
1193             return null;
1194         }
1195         ConfigurationContainer.Builder builder = ConfigurationContainer.newBuilder(target);
1196         transformConfigurationContainer_Inherited(builder, target);
1197         transformConfigurationContainer_Configuration(builder, target);
1198         return builder.build();
1199     }
1200 
1201     protected void transformConfigurationContainer_Inherited(ConfigurationContainer.Builder builder, ConfigurationContainer target) {
1202         String newVal = transform(target.getInherited());
1203         builder.inherited(newVal != target.getInherited() ? newVal : null);
1204     }
1205     protected void transformConfigurationContainer_Configuration(ConfigurationContainer.Builder builder, ConfigurationContainer target) {
1206         XmlNode newVal = transform(target.getConfiguration());
1207         builder.configuration(newVal != target.getConfiguration() ? newVal : null);
1208     }
1209 
1210     protected Plugin transformPlugin(Plugin target) {
1211         if (target == null) {
1212             return null;
1213         }
1214         Plugin.Builder builder = Plugin.newBuilder(target);
1215         transformPlugin_GroupId(builder, target);
1216         transformPlugin_ArtifactId(builder, target);
1217         transformPlugin_Version(builder, target);
1218         transformPlugin_Extensions(builder, target);
1219         transformPlugin_Executions(builder, target);
1220         transformPlugin_Dependencies(builder, target);
1221         transformConfigurationContainer_Inherited(builder, target);
1222         transformConfigurationContainer_Configuration(builder, target);
1223         return builder.build();
1224     }
1225 
1226     protected void transformPlugin_GroupId(Plugin.Builder builder, Plugin target) {
1227         String newVal = transform(target.getGroupId());
1228         builder.groupId(newVal != target.getGroupId() ? newVal : null);
1229     }
1230     protected void transformPlugin_ArtifactId(Plugin.Builder builder, Plugin target) {
1231         String newVal = transform(target.getArtifactId());
1232         builder.artifactId(newVal != target.getArtifactId() ? newVal : null);
1233     }
1234     protected void transformPlugin_Version(Plugin.Builder builder, Plugin target) {
1235         String newVal = transform(target.getVersion());
1236         builder.version(newVal != target.getVersion() ? newVal : null);
1237     }
1238     protected void transformPlugin_Extensions(Plugin.Builder builder, Plugin target) {
1239         String newVal = transform(target.getExtensions());
1240         builder.extensions(newVal != target.getExtensions() ? newVal : null);
1241     }
1242     protected void transformPlugin_Executions(Plugin.Builder builder, Plugin target) {
1243         builder.executions(transform(target.getExecutions(), this::transformPluginExecution));
1244     }
1245     protected void transformPlugin_Dependencies(Plugin.Builder builder, Plugin target) {
1246         builder.dependencies(transform(target.getDependencies(), this::transformDependency));
1247     }
1248     protected void transformPlugin_Inherited(Plugin.Builder builder, Plugin target) {
1249         String newVal = transform(target.getInherited());
1250         builder.inherited(newVal != target.getInherited() ? newVal : null);
1251     }
1252     protected void transformPlugin_Configuration(Plugin.Builder builder, Plugin target) {
1253         XmlNode newVal = transform(target.getConfiguration());
1254         builder.configuration(newVal != target.getConfiguration() ? newVal : null);
1255     }
1256 
1257     protected PluginExecution transformPluginExecution(PluginExecution target) {
1258         if (target == null) {
1259             return null;
1260         }
1261         PluginExecution.Builder builder = PluginExecution.newBuilder(target);
1262         transformPluginExecution_Id(builder, target);
1263         transformPluginExecution_Phase(builder, target);
1264         transformPluginExecution_Priority(builder, target);
1265         transformPluginExecution_Goals(builder, target);
1266         transformConfigurationContainer_Inherited(builder, target);
1267         transformConfigurationContainer_Configuration(builder, target);
1268         return builder.build();
1269     }
1270 
1271     protected void transformPluginExecution_Id(PluginExecution.Builder builder, PluginExecution target) {
1272         String newVal = transform(target.getId());
1273         builder.id(newVal != target.getId() ? newVal : null);
1274     }
1275     protected void transformPluginExecution_Phase(PluginExecution.Builder builder, PluginExecution target) {
1276         String newVal = transform(target.getPhase());
1277         builder.phase(newVal != target.getPhase() ? newVal : null);
1278     }
1279     protected void transformPluginExecution_Priority(PluginExecution.Builder builder, PluginExecution target) {
1280         // nothing to do, the transformer only handles strings
1281     }
1282     protected void transformPluginExecution_Goals(PluginExecution.Builder builder, PluginExecution target) {
1283         builder.goals(transform(target.getGoals(), this::transform));
1284     }
1285     protected void transformPluginExecution_Inherited(PluginExecution.Builder builder, PluginExecution target) {
1286         String newVal = transform(target.getInherited());
1287         builder.inherited(newVal != target.getInherited() ? newVal : null);
1288     }
1289     protected void transformPluginExecution_Configuration(PluginExecution.Builder builder, PluginExecution target) {
1290         XmlNode newVal = transform(target.getConfiguration());
1291         builder.configuration(newVal != target.getConfiguration() ? newVal : null);
1292     }
1293 
1294     protected DependencyManagement transformDependencyManagement(DependencyManagement target) {
1295         if (target == null) {
1296             return null;
1297         }
1298         DependencyManagement.Builder builder = DependencyManagement.newBuilder(target);
1299         transformDependencyManagement_Dependencies(builder, target);
1300         return builder.build();
1301     }
1302 
1303     protected void transformDependencyManagement_Dependencies(DependencyManagement.Builder builder, DependencyManagement target) {
1304         builder.dependencies(transform(target.getDependencies(), this::transformDependency));
1305     }
1306 
1307     protected PluginManagement transformPluginManagement(PluginManagement target) {
1308         if (target == null) {
1309             return null;
1310         }
1311         PluginManagement.Builder builder = PluginManagement.newBuilder(target);
1312         transformPluginContainer_Plugins(builder, target);
1313         return builder.build();
1314     }
1315 
1316     protected void transformPluginManagement_Plugins(PluginManagement.Builder builder, PluginManagement target) {
1317         builder.plugins(transform(target.getPlugins(), this::transformPlugin));
1318     }
1319 
1320     protected Reporting transformReporting(Reporting target) {
1321         if (target == null) {
1322             return null;
1323         }
1324         Reporting.Builder builder = Reporting.newBuilder(target);
1325         transformReporting_ExcludeDefaults(builder, target);
1326         transformReporting_OutputDirectory(builder, target);
1327         transformReporting_Plugins(builder, target);
1328         return builder.build();
1329     }
1330 
1331     protected void transformReporting_ExcludeDefaults(Reporting.Builder builder, Reporting target) {
1332         String newVal = transform(target.getExcludeDefaults());
1333         builder.excludeDefaults(newVal != target.getExcludeDefaults() ? newVal : null);
1334     }
1335     protected void transformReporting_OutputDirectory(Reporting.Builder builder, Reporting target) {
1336         String newVal = transform(target.getOutputDirectory());
1337         builder.outputDirectory(newVal != target.getOutputDirectory() ? newVal : null);
1338     }
1339     protected void transformReporting_Plugins(Reporting.Builder builder, Reporting target) {
1340         builder.plugins(transform(target.getPlugins(), this::transformReportPlugin));
1341     }
1342 
1343     protected Profile transformProfile(Profile target) {
1344         if (target == null) {
1345             return null;
1346         }
1347         Profile.Builder builder = Profile.newBuilder(target);
1348         transformProfile_Id(builder, target);
1349         transformProfile_Activation(builder, target);
1350         transformProfile_Build(builder, target);
1351         transformModelBase_Modules(builder, target);
1352         transformModelBase_DistributionManagement(builder, target);
1353         transformModelBase_Properties(builder, target);
1354         transformModelBase_DependencyManagement(builder, target);
1355         transformModelBase_Dependencies(builder, target);
1356         transformModelBase_Repositories(builder, target);
1357         transformModelBase_PluginRepositories(builder, target);
1358         transformModelBase_Reporting(builder, target);
1359         return builder.build();
1360     }
1361 
1362     protected void transformProfile_Id(Profile.Builder builder, Profile target) {
1363         String newVal = transform(target.getId());
1364         builder.id(newVal != target.getId() ? newVal : null);
1365     }
1366     protected void transformProfile_Activation(Profile.Builder builder, Profile target) {
1367         Activation newVal = transformActivation(target.getActivation());
1368         builder.activation(newVal != target.getActivation() ? newVal : null);
1369     }
1370     protected void transformProfile_Build(Profile.Builder builder, Profile target) {
1371         BuildBase newVal = transformBuildBase(target.getBuild());
1372         builder.build(newVal != target.getBuild() ? newVal : null);
1373     }
1374     protected void transformProfile_Modules(Profile.Builder builder, Profile target) {
1375         builder.modules(transform(target.getModules(), this::transform));
1376     }
1377     protected void transformProfile_DistributionManagement(Profile.Builder builder, Profile target) {
1378         DistributionManagement newVal = transformDistributionManagement(target.getDistributionManagement());
1379         builder.distributionManagement(newVal != target.getDistributionManagement() ? newVal : null);
1380     }
1381     protected void transformProfile_Properties(Profile.Builder builder, Profile target) {
1382         Map<String, String> props = target.getProperties();
1383         Map<String, String> newProps = null;
1384         for (Map.Entry<String, String> entry : props.entrySet()) {
1385             String newVal = transform(entry.getValue());
1386             if (newVal != null && newVal != entry.getValue()) {
1387                 if (newProps == null) {
1388                     newProps = new HashMap<>();
1389                     newProps.putAll(props);
1390                     builder.properties(newProps);
1391                 }
1392                 newProps.put(entry.getKey(), newVal);
1393             }
1394         }
1395     }
1396     protected void transformProfile_DependencyManagement(Profile.Builder builder, Profile target) {
1397         DependencyManagement newVal = transformDependencyManagement(target.getDependencyManagement());
1398         builder.dependencyManagement(newVal != target.getDependencyManagement() ? newVal : null);
1399     }
1400     protected void transformProfile_Dependencies(Profile.Builder builder, Profile target) {
1401         builder.dependencies(transform(target.getDependencies(), this::transformDependency));
1402     }
1403     protected void transformProfile_Repositories(Profile.Builder builder, Profile target) {
1404         builder.repositories(transform(target.getRepositories(), this::transformRepository));
1405     }
1406     protected void transformProfile_PluginRepositories(Profile.Builder builder, Profile target) {
1407         builder.pluginRepositories(transform(target.getPluginRepositories(), this::transformRepository));
1408     }
1409     protected void transformProfile_Reporting(Profile.Builder builder, Profile target) {
1410         Reporting newVal = transformReporting(target.getReporting());
1411         builder.reporting(newVal != target.getReporting() ? newVal : null);
1412     }
1413 
1414     protected Activation transformActivation(Activation target) {
1415         if (target == null) {
1416             return null;
1417         }
1418         Activation.Builder builder = Activation.newBuilder(target);
1419         transformActivation_ActiveByDefault(builder, target);
1420         transformActivation_Jdk(builder, target);
1421         transformActivation_Os(builder, target);
1422         transformActivation_Property(builder, target);
1423         transformActivation_File(builder, target);
1424         return builder.build();
1425     }
1426 
1427     protected void transformActivation_ActiveByDefault(Activation.Builder builder, Activation target) {
1428         // nothing to do, the transformer only handles strings
1429     }
1430     protected void transformActivation_Jdk(Activation.Builder builder, Activation target) {
1431         String newVal = transform(target.getJdk());
1432         builder.jdk(newVal != target.getJdk() ? newVal : null);
1433     }
1434     protected void transformActivation_Os(Activation.Builder builder, Activation target) {
1435         ActivationOS newVal = transformActivationOS(target.getOs());
1436         builder.os(newVal != target.getOs() ? newVal : null);
1437     }
1438     protected void transformActivation_Property(Activation.Builder builder, Activation target) {
1439         ActivationProperty newVal = transformActivationProperty(target.getProperty());
1440         builder.property(newVal != target.getProperty() ? newVal : null);
1441     }
1442     protected void transformActivation_File(Activation.Builder builder, Activation target) {
1443         ActivationFile newVal = transformActivationFile(target.getFile());
1444         builder.file(newVal != target.getFile() ? newVal : null);
1445     }
1446 
1447     protected ActivationProperty transformActivationProperty(ActivationProperty target) {
1448         if (target == null) {
1449             return null;
1450         }
1451         ActivationProperty.Builder builder = ActivationProperty.newBuilder(target);
1452         transformActivationProperty_Name(builder, target);
1453         transformActivationProperty_Value(builder, target);
1454         return builder.build();
1455     }
1456 
1457     protected void transformActivationProperty_Name(ActivationProperty.Builder builder, ActivationProperty target) {
1458         String newVal = transform(target.getName());
1459         builder.name(newVal != target.getName() ? newVal : null);
1460     }
1461     protected void transformActivationProperty_Value(ActivationProperty.Builder builder, ActivationProperty target) {
1462         String newVal = transform(target.getValue());
1463         builder.value(newVal != target.getValue() ? newVal : null);
1464     }
1465 
1466     protected ActivationOS transformActivationOS(ActivationOS target) {
1467         if (target == null) {
1468             return null;
1469         }
1470         ActivationOS.Builder builder = ActivationOS.newBuilder(target);
1471         transformActivationOS_Name(builder, target);
1472         transformActivationOS_Family(builder, target);
1473         transformActivationOS_Arch(builder, target);
1474         transformActivationOS_Version(builder, target);
1475         return builder.build();
1476     }
1477 
1478     protected void transformActivationOS_Name(ActivationOS.Builder builder, ActivationOS target) {
1479         String newVal = transform(target.getName());
1480         builder.name(newVal != target.getName() ? newVal : null);
1481     }
1482     protected void transformActivationOS_Family(ActivationOS.Builder builder, ActivationOS target) {
1483         String newVal = transform(target.getFamily());
1484         builder.family(newVal != target.getFamily() ? newVal : null);
1485     }
1486     protected void transformActivationOS_Arch(ActivationOS.Builder builder, ActivationOS target) {
1487         String newVal = transform(target.getArch());
1488         builder.arch(newVal != target.getArch() ? newVal : null);
1489     }
1490     protected void transformActivationOS_Version(ActivationOS.Builder builder, ActivationOS target) {
1491         String newVal = transform(target.getVersion());
1492         builder.version(newVal != target.getVersion() ? newVal : null);
1493     }
1494 
1495     protected ActivationFile transformActivationFile(ActivationFile target) {
1496         if (target == null) {
1497             return null;
1498         }
1499         ActivationFile.Builder builder = ActivationFile.newBuilder(target);
1500         transformActivationFile_Missing(builder, target);
1501         transformActivationFile_Exists(builder, target);
1502         return builder.build();
1503     }
1504 
1505     protected void transformActivationFile_Missing(ActivationFile.Builder builder, ActivationFile target) {
1506         String newVal = transform(target.getMissing());
1507         builder.missing(newVal != target.getMissing() ? newVal : null);
1508     }
1509     protected void transformActivationFile_Exists(ActivationFile.Builder builder, ActivationFile target) {
1510         String newVal = transform(target.getExists());
1511         builder.exists(newVal != target.getExists() ? newVal : null);
1512     }
1513 
1514     protected ReportPlugin transformReportPlugin(ReportPlugin target) {
1515         if (target == null) {
1516             return null;
1517         }
1518         ReportPlugin.Builder builder = ReportPlugin.newBuilder(target);
1519         transformReportPlugin_GroupId(builder, target);
1520         transformReportPlugin_ArtifactId(builder, target);
1521         transformReportPlugin_Version(builder, target);
1522         transformReportPlugin_ReportSets(builder, target);
1523         transformConfigurationContainer_Inherited(builder, target);
1524         transformConfigurationContainer_Configuration(builder, target);
1525         return builder.build();
1526     }
1527 
1528     protected void transformReportPlugin_GroupId(ReportPlugin.Builder builder, ReportPlugin target) {
1529         String newVal = transform(target.getGroupId());
1530         builder.groupId(newVal != target.getGroupId() ? newVal : null);
1531     }
1532     protected void transformReportPlugin_ArtifactId(ReportPlugin.Builder builder, ReportPlugin target) {
1533         String newVal = transform(target.getArtifactId());
1534         builder.artifactId(newVal != target.getArtifactId() ? newVal : null);
1535     }
1536     protected void transformReportPlugin_Version(ReportPlugin.Builder builder, ReportPlugin target) {
1537         String newVal = transform(target.getVersion());
1538         builder.version(newVal != target.getVersion() ? newVal : null);
1539     }
1540     protected void transformReportPlugin_ReportSets(ReportPlugin.Builder builder, ReportPlugin target) {
1541         builder.reportSets(transform(target.getReportSets(), this::transformReportSet));
1542     }
1543     protected void transformReportPlugin_Inherited(ReportPlugin.Builder builder, ReportPlugin target) {
1544         String newVal = transform(target.getInherited());
1545         builder.inherited(newVal != target.getInherited() ? newVal : null);
1546     }
1547     protected void transformReportPlugin_Configuration(ReportPlugin.Builder builder, ReportPlugin target) {
1548         XmlNode newVal = transform(target.getConfiguration());
1549         builder.configuration(newVal != target.getConfiguration() ? newVal : null);
1550     }
1551 
1552     protected ReportSet transformReportSet(ReportSet target) {
1553         if (target == null) {
1554             return null;
1555         }
1556         ReportSet.Builder builder = ReportSet.newBuilder(target);
1557         transformReportSet_Id(builder, target);
1558         transformReportSet_Reports(builder, target);
1559         transformConfigurationContainer_Inherited(builder, target);
1560         transformConfigurationContainer_Configuration(builder, target);
1561         return builder.build();
1562     }
1563 
1564     protected void transformReportSet_Id(ReportSet.Builder builder, ReportSet target) {
1565         String newVal = transform(target.getId());
1566         builder.id(newVal != target.getId() ? newVal : null);
1567     }
1568     protected void transformReportSet_Reports(ReportSet.Builder builder, ReportSet target) {
1569         builder.reports(transform(target.getReports(), this::transform));
1570     }
1571     protected void transformReportSet_Inherited(ReportSet.Builder builder, ReportSet target) {
1572         String newVal = transform(target.getInherited());
1573         builder.inherited(newVal != target.getInherited() ? newVal : null);
1574     }
1575     protected void transformReportSet_Configuration(ReportSet.Builder builder, ReportSet target) {
1576         XmlNode newVal = transform(target.getConfiguration());
1577         builder.configuration(newVal != target.getConfiguration() ? newVal : null);
1578     }
1579 
1580     protected Prerequisites transformPrerequisites(Prerequisites target) {
1581         if (target == null) {
1582             return null;
1583         }
1584         Prerequisites.Builder builder = Prerequisites.newBuilder(target);
1585         transformPrerequisites_Maven(builder, target);
1586         return builder.build();
1587     }
1588 
1589     protected void transformPrerequisites_Maven(Prerequisites.Builder builder, Prerequisites target) {
1590         String newVal = transform(target.getMaven());
1591         builder.maven(newVal != target.getMaven() ? newVal : null);
1592     }
1593 
1594     protected Relocation transformRelocation(Relocation target) {
1595         if (target == null) {
1596             return null;
1597         }
1598         Relocation.Builder builder = Relocation.newBuilder(target);
1599         transformRelocation_GroupId(builder, target);
1600         transformRelocation_ArtifactId(builder, target);
1601         transformRelocation_Version(builder, target);
1602         transformRelocation_Message(builder, target);
1603         return builder.build();
1604     }
1605 
1606     protected void transformRelocation_GroupId(Relocation.Builder builder, Relocation target) {
1607         String newVal = transform(target.getGroupId());
1608         builder.groupId(newVal != target.getGroupId() ? newVal : null);
1609     }
1610     protected void transformRelocation_ArtifactId(Relocation.Builder builder, Relocation target) {
1611         String newVal = transform(target.getArtifactId());
1612         builder.artifactId(newVal != target.getArtifactId() ? newVal : null);
1613     }
1614     protected void transformRelocation_Version(Relocation.Builder builder, Relocation target) {
1615         String newVal = transform(target.getVersion());
1616         builder.version(newVal != target.getVersion() ? newVal : null);
1617     }
1618     protected void transformRelocation_Message(Relocation.Builder builder, Relocation target) {
1619         String newVal = transform(target.getMessage());
1620         builder.message(newVal != target.getMessage() ? newVal : null);
1621     }
1622 
1623     protected Extension transformExtension(Extension target) {
1624         if (target == null) {
1625             return null;
1626         }
1627         Extension.Builder builder = Extension.newBuilder(target);
1628         transformExtension_GroupId(builder, target);
1629         transformExtension_ArtifactId(builder, target);
1630         transformExtension_Version(builder, target);
1631         transformExtension_Configuration(builder, target);
1632         return builder.build();
1633     }
1634 
1635     protected void transformExtension_GroupId(Extension.Builder builder, Extension target) {
1636         String newVal = transform(target.getGroupId());
1637         builder.groupId(newVal != target.getGroupId() ? newVal : null);
1638     }
1639     protected void transformExtension_ArtifactId(Extension.Builder builder, Extension target) {
1640         String newVal = transform(target.getArtifactId());
1641         builder.artifactId(newVal != target.getArtifactId() ? newVal : null);
1642     }
1643     protected void transformExtension_Version(Extension.Builder builder, Extension target) {
1644         String newVal = transform(target.getVersion());
1645         builder.version(newVal != target.getVersion() ? newVal : null);
1646     }
1647     protected void transformExtension_Configuration(Extension.Builder builder, Extension target) {
1648         XmlNode newVal = transform(target.getConfiguration());
1649         builder.configuration(newVal != target.getConfiguration() ? newVal : null);
1650     }
1651 
1652     protected <T> List<T> transform(List<T> list, Function<T, T> transformer) {
1653         List<T> newList = null;
1654         for (int i = 0; i < list.size(); i++) {
1655             T newVal = transformer.apply(list.get(i));
1656             if (newVal != list.get(i)) {
1657                 if (newList == null) {
1658                     newList = new ArrayList<>(list);
1659                 }
1660                 newList.set(i, newVal);
1661             }
1662         }
1663         return newList;
1664     }
1665 
1666     protected XmlNode transform(XmlNode node) {
1667         if (node != null) {
1668             Xpp3Dom xpp = new Xpp3Dom(node);
1669             transform(xpp);
1670             return xpp.getDom();
1671         }
1672         return node;
1673     }
1674 
1675     protected void transform(Xpp3Dom dom) {
1676         if (dom != null) {
1677             String org, val;
1678             // Content
1679             org = dom.getValue();
1680             val = transform(org);
1681             if (org != val) {
1682                 dom.setValue(val);
1683             }
1684             // Attributes
1685             for (String attr : dom.getAttributeNames()) {
1686                 org = dom.getAttribute(attr);
1687                 val = transform(org);
1688                 if (org != val) {
1689                     dom.setAttribute(attr, val);
1690                 }
1691             }
1692             // Children
1693             for (int i = 0, l = dom.getChildCount(); i < l; i++) {
1694                 transform(dom.getChild(i));
1695             }
1696         }
1697     }
1698 }