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