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