Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
maven-model-3.8.6.jar - Maven Model Module
maven-model-3.8.6.jar is the JAR file for Apache Maven 3.8.6 Model module. Apache Maven is a software project management and comprehension tool.
JAR File Size and Download Location:
File: 216125 06-06-2022 16:16 lib/maven-model-3.8.6.jar Download: Apache Maven Website
✍: FYIcenter.com
⏎ org/apache/maven/model/merge/ModelMerger.java
package org.apache.maven.model.merge; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ import java.io.ObjectStreamException; import java.util.AbstractList; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Properties; import org.apache.maven.model.Activation; import org.apache.maven.model.Build; import org.apache.maven.model.BuildBase; import org.apache.maven.model.CiManagement; import org.apache.maven.model.ConfigurationContainer; import org.apache.maven.model.Contributor; import org.apache.maven.model.Dependency; import org.apache.maven.model.DependencyManagement; import org.apache.maven.model.DeploymentRepository; import org.apache.maven.model.Developer; import org.apache.maven.model.DistributionManagement; import org.apache.maven.model.Exclusion; import org.apache.maven.model.Extension; import org.apache.maven.model.FileSet; import org.apache.maven.model.InputLocation; import org.apache.maven.model.IssueManagement; import org.apache.maven.model.License; import org.apache.maven.model.MailingList; import org.apache.maven.model.Model; import org.apache.maven.model.ModelBase; import org.apache.maven.model.Notifier; import org.apache.maven.model.Organization; import org.apache.maven.model.Parent; import org.apache.maven.model.PatternSet; import org.apache.maven.model.Plugin; import org.apache.maven.model.PluginConfiguration; import org.apache.maven.model.PluginContainer; import org.apache.maven.model.PluginExecution; import org.apache.maven.model.PluginManagement; import org.apache.maven.model.Prerequisites; import org.apache.maven.model.Profile; import org.apache.maven.model.Relocation; import org.apache.maven.model.ReportPlugin; import org.apache.maven.model.ReportSet; import org.apache.maven.model.Reporting; import org.apache.maven.model.Repository; import org.apache.maven.model.RepositoryBase; import org.apache.maven.model.RepositoryPolicy; import org.apache.maven.model.Resource; import org.apache.maven.model.Scm; import org.apache.maven.model.Site; import org.codehaus.plexus.util.xml.Xpp3Dom; /** * This is a hand-crafted prototype of the default model merger that should eventually be generated by Modello by a new * Java plugin. Code structure to merge source (read-only) object into the target object is:<ul> * <li><code>merge<i>Classname</i>( <i>Classname</i> target, <i>Classname</i> source, boolean sourceDominant, * Map<Object, Object> context )</code> for each model class</li> * <li><code>merge<i>Classname</i>_<i>FieldName</i>( <i>Classname</i> target, <i>Classname</i> source, boolean * sourceDominant, Map<Object, Object> context )</code> for each field of each model class</li> * <li><code>Object get<i>Classname</i>Key( <i>Classname</i> <i>classname</i> )</code> * for each class that is used in a list</li> * </ul> * Code is written like it could be generated, with default behaviour to be overridden when necessary. * This is particularly the case for <code>Object get<i>Classname</i>Key( <i>Classname</i> <i>classname</i> )</code> * method, which by default return the object itself and is expected to be overridden to calculate better suited key * value. * * @author Benjamin Bentmann */ @SuppressWarnings( { "checkstyle:methodname" } ) public class ModelMerger { /** * Merges the specified source object into the given target object. * * @param target The target object whose existing contents should be merged with the source, must not be * <code>null</code>. * @param source The (read-only) source object that should be merged into the target object, may be * <code>null</code>. * @param sourceDominant A flag indicating whether either the target object or the source object provides the * dominant data. * @param hints A set of key-value pairs that customized merger implementations can use to carry domain-specific * information along, may be <code>null</code>. */ public void merge( Model target, Model source, boolean sourceDominant, Map<?, ?> hints ) { Objects.requireNonNull( target, "target cannot be null" ); if ( source == null ) { return; } Map<Object, Object> context = new HashMap<>(); if ( hints != null ) { context.putAll( hints ); } mergeModel( target, source, sourceDominant, context ); } protected void mergeModel( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) { mergeModelBase( target, source, sourceDominant, context ); mergeModel_ChildProjectUrlInheritAppendPath( target, source, sourceDominant, context ); mergeModel_ModelVersion( target, source, sourceDominant, context ); mergeModel_Parent( target, source, sourceDominant, context ); mergeModel_GroupId( target, source, sourceDominant, context ); mergeModel_ArtifactId( target, source, sourceDominant, context ); mergeModel_Version( target, source, sourceDominant, context ); mergeModel_Packaging( target, source, sourceDominant, context ); mergeModel_Name( target, source, sourceDominant, context ); mergeModel_Description( target, source, sourceDominant, context ); mergeModel_Url( target, source, sourceDominant, context ); mergeModel_InceptionYear( target, source, sourceDominant, context ); mergeModel_Organization( target, source, sourceDominant, context ); mergeModel_Licenses( target, source, sourceDominant, context ); mergeModel_MailingLists( target, source, sourceDominant, context ); mergeModel_Developers( target, source, sourceDominant, context ); mergeModel_Contributors( target, source, sourceDominant, context ); mergeModel_IssueManagement( target, source, sourceDominant, context ); mergeModel_Scm( target, source, sourceDominant, context ); mergeModel_CiManagement( target, source, sourceDominant, context ); mergeModel_Prerequisites( target, source, sourceDominant, context ); mergeModel_Build( target, source, sourceDominant, context ); mergeModel_Profiles( target, source, sourceDominant, context ); } protected void mergeModel_ModelVersion( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getModelVersion(); if ( src != null ) { if ( sourceDominant || target.getModelVersion() == null ) { target.setModelVersion( src ); target.setLocation( "modelVersion", source.getLocation( "modelVersion" ) ); } } } protected void mergeModel_Parent( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) { Parent src = source.getParent(); if ( src != null ) { Parent tgt = target.getParent(); if ( tgt == null ) { tgt = new Parent(); tgt.setRelativePath( null ); target.setParent( tgt ); } mergeParent( tgt, src, sourceDominant, context ); } } protected void mergeModel_GroupId( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getGroupId(); if ( src != null ) { if ( sourceDominant || target.getGroupId() == null ) { target.setGroupId( src ); target.setLocation( "groupId", source.getLocation( "groupId" ) ); } } } protected void mergeModel_ArtifactId( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getArtifactId(); if ( src != null ) { if ( sourceDominant || target.getArtifactId() == null ) { target.setArtifactId( src ); target.setLocation( "artifactId", source.getLocation( "artifactId" ) ); } } } protected void mergeModel_ChildProjectUrlInheritAppendPath( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getChildProjectUrlInheritAppendPath(); if ( src != null ) { if ( sourceDominant || target.getChildProjectUrlInheritAppendPath() == null ) { target.setChildProjectUrlInheritAppendPath( src ); target.setLocation( "child.project.url.inherit.append.path", source.getLocation( "child.project.url.inherit.append.path" ) ); } } } protected void mergeModel_Version( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getVersion(); if ( src != null ) { if ( sourceDominant || target.getVersion() == null ) { target.setVersion( src ); target.setLocation( "version", source.getLocation( "version" ) ); } } } protected void mergeModel_Packaging( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getPackaging(); if ( src != null ) { if ( sourceDominant || target.getPackaging() == null ) { target.setPackaging( src ); target.setLocation( "packaging", source.getLocation( "packaging" ) ); } } } protected void mergeModel_Name( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getName(); if ( src != null ) { if ( sourceDominant || target.getName() == null ) { target.setName( src ); target.setLocation( "name", source.getLocation( "name" ) ); } } } protected void mergeModel_Description( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getDescription(); if ( src != null ) { if ( sourceDominant || target.getDescription() == null ) { target.setDescription( src ); target.setLocation( "description", source.getLocation( "description" ) ); } } } protected void mergeModel_Url( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getUrl(); if ( src != null ) { if ( sourceDominant || target.getUrl() == null ) { target.setUrl( src ); target.setLocation( "url", source.getLocation( "url" ) ); } } } protected void mergeModel_InceptionYear( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getInceptionYear(); if ( src != null ) { if ( sourceDominant || target.getInceptionYear() == null ) { target.setInceptionYear( src ); target.setLocation( "inceptionYear", source.getLocation( "inceptionYear" ) ); } } } protected void mergeModel_Organization( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) { Organization src = source.getOrganization(); if ( src != null ) { Organization tgt = target.getOrganization(); if ( tgt == null ) { tgt = new Organization(); target.setOrganization( tgt ); } mergeOrganization( tgt, src, sourceDominant, context ); } } protected void mergeModel_Licenses( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) { target.setLicenses( merge( target.getLicenses(), source.getLicenses(), sourceDominant, new LicenseKeyComputer() ) ); } protected void mergeModel_MailingLists( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) { target.setMailingLists( merge( target.getMailingLists(), source.getMailingLists(), sourceDominant, new MailingListKeyComputer() ) ); } protected void mergeModel_Developers( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) { target.setDevelopers( merge( target.getDevelopers(), source.getDevelopers(), sourceDominant, new DeveloperKeyComputer() ) ); } protected void mergeModel_Contributors( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) { target.setContributors( merge( target.getContributors(), source.getContributors(), sourceDominant, new ContributorKeyComputer() ) ); } protected void mergeModel_IssueManagement( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) { IssueManagement src = source.getIssueManagement(); if ( src != null ) { IssueManagement tgt = target.getIssueManagement(); if ( tgt == null ) { tgt = new IssueManagement(); target.setIssueManagement( tgt ); } mergeIssueManagement( tgt, src, sourceDominant, context ); } } protected void mergeModel_Scm( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) { Scm src = source.getScm(); if ( src != null ) { Scm tgt = target.getScm(); if ( tgt == null ) { tgt = new Scm(); tgt.setTag( null ); target.setScm( tgt ); } mergeScm( tgt, src, sourceDominant, context ); } } protected void mergeModel_CiManagement( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) { CiManagement src = source.getCiManagement(); if ( src != null ) { CiManagement tgt = target.getCiManagement(); if ( tgt == null ) { tgt = new CiManagement(); target.setCiManagement( tgt ); } mergeCiManagement( tgt, src, sourceDominant, context ); } } protected void mergeModel_Prerequisites( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) { Prerequisites src = source.getPrerequisites(); if ( src != null ) { Prerequisites tgt = target.getPrerequisites(); if ( tgt == null ) { tgt = new Prerequisites(); tgt.setMaven( null ); target.setPrerequisites( tgt ); } mergePrerequisites( tgt, src, sourceDominant, context ); } } protected void mergeModel_Build( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) { Build src = source.getBuild(); if ( src != null ) { Build tgt = target.getBuild(); if ( tgt == null ) { tgt = new Build(); target.setBuild( tgt ); } mergeBuild( tgt, src, sourceDominant, context ); } } protected void mergeModel_Profiles( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) { target.setProfiles( merge( target.getProfiles(), source.getProfiles(), sourceDominant, new ProfileKeyComputer() ) ); } protected void mergeModelBase( ModelBase target, ModelBase source, boolean sourceDominant, Map<Object, Object> context ) { mergeModelBase_DistributionManagement( target, source, sourceDominant, context ); mergeModelBase_Modules( target, source, sourceDominant, context ); mergeModelBase_Repositories( target, source, sourceDominant, context ); mergeModelBase_PluginRepositories( target, source, sourceDominant, context ); mergeModelBase_Dependencies( target, source, sourceDominant, context ); mergeModelBase_Reporting( target, source, sourceDominant, context ); mergeModelBase_DependencyManagement( target, source, sourceDominant, context ); mergeModelBase_Properties( target, source, sourceDominant, context ); } protected void mergeModelBase_Modules( ModelBase target, ModelBase source, boolean sourceDominant, Map<Object, Object> context ) { List<String> src = source.getModules(); if ( !src.isEmpty() ) { List<String> tgt = target.getModules(); List<String> merged = new ArrayList<>( tgt.size() + src.size() ); merged.addAll( tgt ); merged.addAll( src ); target.setModules( merged ); } } protected void mergeModelBase_Dependencies( ModelBase target, ModelBase source, boolean sourceDominant, Map<Object, Object> context ) { target.setDependencies( merge( target.getDependencies(), source.getDependencies(), sourceDominant, new DependencyKeyComputer() ) ); } protected void mergeModelBase_Repositories( ModelBase target, ModelBase source, boolean sourceDominant, Map<Object, Object> context ) { target.setRepositories( merge( target.getRepositories(), source.getRepositories(), sourceDominant, new RepositoryKeyComputer() ) ); } protected void mergeModelBase_PluginRepositories( ModelBase target, ModelBase source, boolean sourceDominant, Map<Object, Object> context ) { target.setPluginRepositories( merge( target.getPluginRepositories(), source.getPluginRepositories(), sourceDominant, new RepositoryKeyComputer() ) ); } protected void mergeModelBase_DistributionManagement( ModelBase target, ModelBase source, boolean sourceDominant, Map<Object, Object> context ) { DistributionManagement src = source.getDistributionManagement(); if ( src != null ) { DistributionManagement tgt = target.getDistributionManagement(); if ( tgt == null ) { tgt = new DistributionManagement(); target.setDistributionManagement( tgt ); } mergeDistributionManagement( tgt, src, sourceDominant, context ); } } protected void mergeModelBase_Reporting( ModelBase target, ModelBase source, boolean sourceDominant, Map<Object, Object> context ) { Reporting src = source.getReporting(); if ( src != null ) { Reporting tgt = target.getReporting(); if ( tgt == null ) { tgt = new Reporting(); target.setReporting( tgt ); } mergeReporting( tgt, src, sourceDominant, context ); } } protected void mergeModelBase_DependencyManagement( ModelBase target, ModelBase source, boolean sourceDominant, Map<Object, Object> context ) { DependencyManagement src = source.getDependencyManagement(); if ( src != null ) { DependencyManagement tgt = target.getDependencyManagement(); if ( tgt == null ) { tgt = new DependencyManagement(); target.setDependencyManagement( tgt ); } mergeDependencyManagement( tgt, src, sourceDominant, context ); } } protected void mergeModelBase_Properties( ModelBase target, ModelBase source, boolean sourceDominant, Map<Object, Object> context ) { Properties merged = new Properties(); if ( sourceDominant ) { merged.putAll( target.getProperties() ); merged.putAll( source.getProperties() ); } else { merged.putAll( source.getProperties() ); merged.putAll( target.getProperties() ); } target.setProperties( merged ); target.setLocation( "properties", InputLocation.merge( target.getLocation( "properties" ), source.getLocation( "properties" ), sourceDominant ) ); } protected void mergeDistributionManagement( DistributionManagement target, DistributionManagement source, boolean sourceDominant, Map<Object, Object> context ) { mergeDistributionManagement_Repository( target, source, sourceDominant, context ); mergeDistributionManagement_SnapshotRepository( target, source, sourceDominant, context ); mergeDistributionManagement_Site( target, source, sourceDominant, context ); mergeDistributionManagement_Status( target, source, sourceDominant, context ); mergeDistributionManagement_DownloadUrl( target, source, sourceDominant, context ); } protected void mergeDistributionManagement_Repository( DistributionManagement target, DistributionManagement source, boolean sourceDominant, Map<Object, Object> context ) { DeploymentRepository src = source.getRepository(); if ( src != null ) { DeploymentRepository tgt = target.getRepository(); if ( tgt == null ) { tgt = new DeploymentRepository(); target.setRepository( tgt ); } mergeDeploymentRepository( tgt, src, sourceDominant, context ); } } protected void mergeDistributionManagement_SnapshotRepository( DistributionManagement target, DistributionManagement source, boolean sourceDominant, Map<Object, Object> context ) { DeploymentRepository src = source.getSnapshotRepository(); if ( src != null ) { DeploymentRepository tgt = target.getSnapshotRepository(); if ( tgt == null ) { tgt = new DeploymentRepository(); target.setSnapshotRepository( tgt ); } mergeDeploymentRepository( tgt, src, sourceDominant, context ); } } protected void mergeDistributionManagement_Site( DistributionManagement target, DistributionManagement source, boolean sourceDominant, Map<Object, Object> context ) { Site src = source.getSite(); if ( src != null ) { Site tgt = target.getSite(); if ( tgt == null ) { tgt = new Site(); target.setSite( tgt ); } mergeSite( tgt, src, sourceDominant, context ); } } protected void mergeDistributionManagement_Status( DistributionManagement target, DistributionManagement source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getStatus(); if ( src != null ) { if ( sourceDominant || target.getStatus() == null ) { target.setStatus( src ); target.setLocation( "status", source.getLocation( "status" ) ); } } } protected void mergeDistributionManagement_DownloadUrl( DistributionManagement target, DistributionManagement source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getDownloadUrl(); if ( src != null ) { if ( sourceDominant || target.getDownloadUrl() == null ) { target.setDownloadUrl( src ); target.setLocation( "downloadUrl", source.getLocation( "downloadUrl" ) ); } } } protected void mergeRelocation( Relocation target, Relocation source, boolean sourceDominant, Map<Object, Object> context ) { mergeRelocation_GroupId( target, source, sourceDominant, context ); mergeRelocation_ArtifactId( target, source, sourceDominant, context ); mergeRelocation_Version( target, source, sourceDominant, context ); mergeRelocation_Message( target, source, sourceDominant, context ); } protected void mergeRelocation_GroupId( Relocation target, Relocation source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getGroupId(); if ( src != null ) { if ( sourceDominant || target.getGroupId() == null ) { target.setGroupId( src ); target.setLocation( "groupId", source.getLocation( "groupId" ) ); } } } protected void mergeRelocation_ArtifactId( Relocation target, Relocation source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getArtifactId(); if ( src != null ) { if ( sourceDominant || target.getArtifactId() == null ) { target.setArtifactId( src ); target.setLocation( "artifactId", source.getLocation( "artifactId" ) ); } } } protected void mergeRelocation_Version( Relocation target, Relocation source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getVersion(); if ( src != null ) { if ( sourceDominant || target.getVersion() == null ) { target.setVersion( src ); target.setLocation( "version", source.getLocation( "version" ) ); } } } protected void mergeRelocation_Message( Relocation target, Relocation source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getMessage(); if ( src != null ) { if ( sourceDominant || target.getMessage() == null ) { target.setMessage( src ); target.setLocation( "message", source.getLocation( "message" ) ); } } } protected void mergeDeploymentRepository( DeploymentRepository target, DeploymentRepository source, boolean sourceDominant, Map<Object, Object> context ) { mergeRepository( target, source, sourceDominant, context ); mergeDeploymentRepository_UniqueVersion( target, source, sourceDominant, context ); } protected void mergeDeploymentRepository_UniqueVersion( DeploymentRepository target, DeploymentRepository source, boolean sourceDominant, Map<Object, Object> context ) { if ( sourceDominant ) { target.setUniqueVersion( source.isUniqueVersion() ); target.setLocation( "uniqueVersion", source.getLocation( "uniqueVersion" ) ); } } protected void mergeSite( Site target, Site source, boolean sourceDominant, Map<Object, Object> context ) { mergeSite_ChildSiteUrlInheritAppendPath( target, source, sourceDominant, context ); mergeSite_Id( target, source, sourceDominant, context ); mergeSite_Name( target, source, sourceDominant, context ); mergeSite_Url( target, source, sourceDominant, context ); } protected void mergeSite_ChildSiteUrlInheritAppendPath( Site target, Site source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getChildSiteUrlInheritAppendPath(); if ( src != null ) { if ( sourceDominant || target.getChildSiteUrlInheritAppendPath() == null ) { target.setChildSiteUrlInheritAppendPath( src ); target.setLocation( "child.site.url.inherit.append.path", source.getLocation( "child.site.url.inherit.append.path" ) ); } } } protected void mergeSite_Id( Site target, Site source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getId(); if ( src != null ) { if ( sourceDominant || target.getId() == null ) { target.setId( src ); target.setLocation( "id", source.getLocation( "id" ) ); } } } protected void mergeSite_Name( Site target, Site source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getName(); if ( src != null ) { if ( sourceDominant || target.getName() == null ) { target.setName( src ); target.setLocation( "name", source.getLocation( "name" ) ); } } } protected void mergeSite_Url( Site target, Site source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getUrl(); if ( src != null ) { if ( sourceDominant || target.getUrl() == null ) { target.setUrl( src ); target.setLocation( "url", source.getLocation( "url" ) ); } } } protected void mergeRepository( Repository target, Repository source, boolean sourceDominant, Map<Object, Object> context ) { mergeRepositoryBase( target, source, sourceDominant, context ); mergeRepository_Releases( target, source, sourceDominant, context ); mergeRepository_Snapshots( target, source, sourceDominant, context ); } protected void mergeRepository_Releases( Repository target, Repository source, boolean sourceDominant, Map<Object, Object> context ) { RepositoryPolicy src = source.getReleases(); if ( src != null ) { RepositoryPolicy tgt = target.getReleases(); if ( tgt == null ) { tgt = new RepositoryPolicy(); target.setReleases( tgt ); } mergeRepositoryPolicy( tgt, src, sourceDominant, context ); } } protected void mergeRepository_Snapshots( Repository target, Repository source, boolean sourceDominant, Map<Object, Object> context ) { RepositoryPolicy src = source.getSnapshots(); if ( src != null ) { RepositoryPolicy tgt = target.getSnapshots(); if ( tgt == null ) { tgt = new RepositoryPolicy(); target.setSnapshots( tgt ); } mergeRepositoryPolicy( tgt, src, sourceDominant, context ); } } protected void mergeRepositoryBase( RepositoryBase target, RepositoryBase source, boolean sourceDominant, Map<Object, Object> context ) { mergeRepositoryBase_Id( target, source, sourceDominant, context ); mergeRepositoryBase_Name( target, source, sourceDominant, context ); mergeRepositoryBase_Url( target, source, sourceDominant, context ); mergeRepositoryBase_Layout( target, source, sourceDominant, context ); } protected void mergeRepositoryBase_Id( RepositoryBase target, RepositoryBase source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getId(); if ( src != null ) { if ( sourceDominant || target.getId() == null ) { target.setId( src ); target.setLocation( "id", source.getLocation( "id" ) ); } } } protected void mergeRepositoryBase_Url( RepositoryBase target, RepositoryBase source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getUrl(); if ( src != null ) { if ( sourceDominant || target.getUrl() == null ) { target.setUrl( src ); target.setLocation( "url", source.getLocation( "url" ) ); } } } protected void mergeRepositoryBase_Name( RepositoryBase target, RepositoryBase source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getName(); if ( src != null ) { if ( sourceDominant || target.getName() == null ) { target.setName( src ); target.setLocation( "name", source.getLocation( "name" ) ); } } } protected void mergeRepositoryBase_Layout( RepositoryBase target, RepositoryBase source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getLayout(); if ( src != null ) { if ( sourceDominant || target.getLayout() == null ) { target.setLayout( src ); target.setLocation( "layout", source.getLocation( "layout" ) ); } } } protected void mergeRepositoryPolicy( RepositoryPolicy target, RepositoryPolicy source, boolean sourceDominant, Map<Object, Object> context ) { mergeRepositoryPolicy_Enabled( target, source, sourceDominant, context ); mergeRepositoryPolicy_UpdatePolicy( target, source, sourceDominant, context ); mergeRepositoryPolicy_ChecksumPolicy( target, source, sourceDominant, context ); } protected void mergeRepositoryPolicy_Enabled( RepositoryPolicy target, RepositoryPolicy source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getEnabled(); if ( src != null ) { if ( sourceDominant || target.getEnabled() == null ) { target.setEnabled( src ); target.setLocation( "enabled", source.getLocation( "enabled" ) ); } } } protected void mergeRepositoryPolicy_UpdatePolicy( RepositoryPolicy target, RepositoryPolicy source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getUpdatePolicy(); if ( src != null ) { if ( sourceDominant || target.getUpdatePolicy() == null ) { target.setUpdatePolicy( src ); target.setLocation( "updatePolicy", source.getLocation( "updatePolicy" ) ); } } } protected void mergeRepositoryPolicy_ChecksumPolicy( RepositoryPolicy target, RepositoryPolicy source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getChecksumPolicy(); if ( src != null ) { if ( sourceDominant || target.getChecksumPolicy() == null ) { target.setChecksumPolicy( src ); target.setLocation( "checksumPolicy", source.getLocation( "checksumPolicy" ) ); } } } protected void mergeDependency( Dependency target, Dependency source, boolean sourceDominant, Map<Object, Object> context ) { mergeDependency_GroupId( target, source, sourceDominant, context ); mergeDependency_ArtifactId( target, source, sourceDominant, context ); mergeDependency_Version( target, source, sourceDominant, context ); mergeDependency_Type( target, source, sourceDominant, context ); mergeDependency_Classifier( target, source, sourceDominant, context ); mergeDependency_Scope( target, source, sourceDominant, context ); mergeDependency_SystemPath( target, source, sourceDominant, context ); mergeDependency_Optional( target, source, sourceDominant, context ); mergeDependency_Exclusions( target, source, sourceDominant, context ); } protected void mergeDependency_GroupId( Dependency target, Dependency source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getGroupId(); if ( src != null ) { if ( sourceDominant || target.getGroupId() == null ) { target.setGroupId( src ); target.setLocation( "groupId", source.getLocation( "groupId" ) ); } } } protected void mergeDependency_ArtifactId( Dependency target, Dependency source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getArtifactId(); if ( src != null ) { if ( sourceDominant || target.getArtifactId() == null ) { target.setArtifactId( src ); target.setLocation( "artifactId", source.getLocation( "artifactId" ) ); } } } protected void mergeDependency_Version( Dependency target, Dependency source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getVersion(); if ( src != null ) { if ( sourceDominant || target.getVersion() == null ) { target.setVersion( src ); target.setLocation( "version", source.getLocation( "version" ) ); } } } protected void mergeDependency_Type( Dependency target, Dependency source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getType(); if ( src != null ) { if ( sourceDominant || target.getType() == null ) { target.setType( src ); target.setLocation( "type", source.getLocation( "type" ) ); } } } protected void mergeDependency_Classifier( Dependency target, Dependency source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getClassifier(); if ( src != null ) { if ( sourceDominant || target.getClassifier() == null ) { target.setClassifier( src ); target.setLocation( "classifier", source.getLocation( "classifier" ) ); } } } protected void mergeDependency_Scope( Dependency target, Dependency source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getScope(); if ( src != null ) { if ( sourceDominant || target.getScope() == null ) { target.setScope( src ); target.setLocation( "scope", source.getLocation( "scope" ) ); } } } protected void mergeDependency_SystemPath( Dependency target, Dependency source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getSystemPath(); if ( src != null ) { if ( sourceDominant || target.getSystemPath() == null ) { target.setSystemPath( src ); target.setLocation( "systemPath", source.getLocation( "systemPath" ) ); } } } protected void mergeDependency_Optional( Dependency target, Dependency source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getOptional(); if ( src != null ) { if ( sourceDominant || target.getOptional() == null ) { target.setOptional( src ); target.setLocation( "optional", source.getLocation( "optional" ) ); } } } protected void mergeDependency_Exclusions( Dependency target, Dependency source, boolean sourceDominant, Map<Object, Object> context ) { target.setExclusions( merge( target.getExclusions(), source.getExclusions(), sourceDominant, new ExclusionKeyComputer() ) ); } protected void mergeExclusion( Exclusion target, Exclusion source, boolean sourceDominant, Map<Object, Object> context ) { mergeExclusion_GroupId( target, source, sourceDominant, context ); mergeExclusion_ArtifactId( target, source, sourceDominant, context ); } protected void mergeExclusion_GroupId( Exclusion target, Exclusion source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getGroupId(); if ( src != null ) { if ( sourceDominant || target.getGroupId() == null ) { target.setGroupId( src ); target.setLocation( "groupId", source.getLocation( "groupId" ) ); } } } protected void mergeExclusion_ArtifactId( Exclusion target, Exclusion source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getArtifactId(); if ( src != null ) { if ( sourceDominant || target.getArtifactId() == null ) { target.setArtifactId( src ); target.setLocation( "artifactId", source.getLocation( "artifactId" ) ); } } } protected void mergeReporting( Reporting target, Reporting source, boolean sourceDominant, Map<Object, Object> context ) { mergeReporting_OutputDirectory( target, source, sourceDominant, context ); mergeReporting_ExcludeDefaults( target, source, sourceDominant, context ); mergeReporting_Plugins( target, source, sourceDominant, context ); } protected void mergeReporting_OutputDirectory( Reporting target, Reporting source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getOutputDirectory(); if ( src != null ) { if ( sourceDominant || target.getOutputDirectory() == null ) { target.setOutputDirectory( src ); target.setLocation( "outputDirectory", source.getLocation( "outputDirectory" ) ); } } } protected void mergeReporting_ExcludeDefaults( Reporting target, Reporting source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getExcludeDefaults(); if ( src != null ) { if ( sourceDominant || target.getExcludeDefaults() == null ) { target.setExcludeDefaults( src ); target.setLocation( "excludeDefaults", source.getLocation( "excludeDefaults" ) ); } } } protected void mergeReporting_Plugins( Reporting target, Reporting source, boolean sourceDominant, Map<Object, Object> context ) { target.setPlugins( merge( target.getPlugins(), source.getPlugins(), sourceDominant, new ReportPluginKeyComputer() ) ); } protected void mergeReportPlugin( ReportPlugin target, ReportPlugin source, boolean sourceDominant, Map<Object, Object> context ) { mergeConfigurationContainer( target, source, sourceDominant, context ); mergeReportPlugin_GroupId( target, source, sourceDominant, context ); mergeReportPlugin_ArtifactId( target, source, sourceDominant, context ); mergeReportPlugin_Version( target, source, sourceDominant, context ); mergeReportPlugin_ReportSets( target, source, sourceDominant, context ); } protected void mergeReportPlugin_GroupId( ReportPlugin target, ReportPlugin source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getGroupId(); if ( src != null ) { if ( sourceDominant || target.getGroupId() == null ) { target.setGroupId( src ); target.setLocation( "groupId", source.getLocation( "groupId" ) ); } } } protected void mergeReportPlugin_ArtifactId( ReportPlugin target, ReportPlugin source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getArtifactId(); if ( src != null ) { if ( sourceDominant || target.getArtifactId() == null ) { target.setArtifactId( src ); target.setLocation( "artifactId", source.getLocation( "artifactId" ) ); } } } protected void mergeReportPlugin_Version( ReportPlugin target, ReportPlugin source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getVersion(); if ( src != null ) { if ( sourceDominant || target.getVersion() == null ) { target.setVersion( src ); target.setLocation( "version", source.getLocation( "version" ) ); } } } protected void mergeReportPlugin_ReportSets( ReportPlugin target, ReportPlugin source, boolean sourceDominant, Map<Object, Object> context ) { target.setReportSets( merge( target.getReportSets(), source.getReportSets(), sourceDominant, new ReportSetKeyComputer() ) ); } protected void mergeReportSet( ReportSet target, ReportSet source, boolean sourceDominant, Map<Object, Object> context ) { mergeConfigurationContainer( target, source, sourceDominant, context ); mergeReportSet_Id( target, source, sourceDominant, context ); mergeReportSet_Reports( target, source, sourceDominant, context ); } protected void mergeReportSet_Id( ReportSet target, ReportSet source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getId(); if ( src != null ) { if ( sourceDominant || target.getId() == null ) { target.setId( src ); target.setLocation( "id", source.getLocation( "id" ) ); } } } protected void mergeReportSet_Reports( ReportSet target, ReportSet source, boolean sourceDominant, Map<Object, Object> context ) { List<String> src = source.getReports(); if ( !src.isEmpty() ) { List<String> tgt = target.getReports(); List<String> merged = new ArrayList<>( tgt.size() + src.size() ); merged.addAll( tgt ); merged.addAll( src ); target.setReports( merged ); InputLocation sourceLocation = source.getLocation( "reports" ); if ( sourceLocation != null ) { InputLocation targetLocation = target.getLocation( "reports" ); if ( targetLocation == null ) { target.setLocation( "reports", sourceLocation ); } else { for ( int i = 0; i < src.size(); i++ ) { targetLocation.setLocation( Integer.valueOf( tgt.size() + i ), sourceLocation.getLocation( Integer.valueOf( i ) ) ); } } } } } protected void mergeDependencyManagement( DependencyManagement target, DependencyManagement source, boolean sourceDominant, Map<Object, Object> context ) { mergeDependencyManagement_Dependencies( target, source, sourceDominant, context ); } protected void mergeDependencyManagement_Dependencies( DependencyManagement target, DependencyManagement source, boolean sourceDominant, Map<Object, Object> context ) { target.setDependencies( merge( target.getDependencies(), source.getDependencies(), sourceDominant, new DependencyKeyComputer() ) ); } protected void mergeParent( Parent target, Parent source, boolean sourceDominant, Map<Object, Object> context ) { mergeParent_GroupId( target, source, sourceDominant, context ); mergeParent_ArtifactId( target, source, sourceDominant, context ); mergeParent_Version( target, source, sourceDominant, context ); mergeParent_RelativePath( target, source, sourceDominant, context ); } protected void mergeParent_GroupId( Parent target, Parent source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getGroupId(); if ( src != null ) { if ( sourceDominant || target.getGroupId() == null ) { target.setGroupId( src ); target.setLocation( "groupId", source.getLocation( "groupId" ) ); } } } protected void mergeParent_ArtifactId( Parent target, Parent source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getArtifactId(); if ( src != null ) { if ( sourceDominant || target.getArtifactId() == null ) { target.setArtifactId( src ); target.setLocation( "artifactId", source.getLocation( "artifactId" ) ); } } } protected void mergeParent_Version( Parent target, Parent source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getVersion(); if ( src != null ) { if ( sourceDominant || target.getVersion() == null ) { target.setVersion( src ); target.setLocation( "version", source.getLocation( "version" ) ); } } } protected void mergeParent_RelativePath( Parent target, Parent source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getRelativePath(); if ( src != null ) { if ( sourceDominant || target.getRelativePath() == null ) { target.setRelativePath( src ); target.setLocation( "relativePath", source.getLocation( "relativePath" ) ); } } } protected void mergeOrganization( Organization target, Organization source, boolean sourceDominant, Map<Object, Object> context ) { mergeOrganization_Name( target, source, sourceDominant, context ); mergeOrganization_Url( target, source, sourceDominant, context ); } protected void mergeOrganization_Name( Organization target, Organization source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getName(); if ( src != null ) { if ( sourceDominant || target.getName() == null ) { target.setName( src ); target.setLocation( "name", source.getLocation( "name" ) ); } } } protected void mergeOrganization_Url( Organization target, Organization source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getUrl(); if ( src != null ) { if ( sourceDominant || target.getUrl() == null ) { target.setUrl( src ); target.setLocation( "url", source.getLocation( "url" ) ); } } } protected void mergeLicense( License target, License source, boolean sourceDominant, Map<Object, Object> context ) { mergeLicense_Name( target, source, sourceDominant, context ); mergeLicense_Url( target, source, sourceDominant, context ); mergeLicense_Distribution( target, source, sourceDominant, context ); mergeLicense_Comments( target, source, sourceDominant, context ); } protected void mergeLicense_Name( License target, License source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getName(); if ( src != null ) { if ( sourceDominant || target.getName() == null ) { target.setName( src ); target.setLocation( "name", source.getLocation( "name" ) ); } } } protected void mergeLicense_Url( License target, License source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getUrl(); if ( src != null ) { if ( sourceDominant || target.getUrl() == null ) { target.setUrl( src ); target.setLocation( "url", source.getLocation( "url" ) ); } } } protected void mergeLicense_Distribution( License target, License source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getDistribution(); if ( src != null ) { if ( sourceDominant || target.getDistribution() == null ) { target.setDistribution( src ); target.setLocation( "distribution", source.getLocation( "distribution" ) ); } } } protected void mergeLicense_Comments( License target, License source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getComments(); if ( src != null ) { if ( sourceDominant || target.getComments() == null ) { target.setComments( src ); target.setLocation( "comments", source.getLocation( "comments" ) ); } } } protected void mergeMailingList( MailingList target, MailingList source, boolean sourceDominant, Map<Object, Object> context ) { mergeMailingList_Name( target, source, sourceDominant, context ); mergeMailingList_Subscribe( target, source, sourceDominant, context ); mergeMailingList_Unsubscribe( target, source, sourceDominant, context ); mergeMailingList_Post( target, source, sourceDominant, context ); mergeMailingList_OtherArchives( target, source, sourceDominant, context ); } protected void mergeMailingList_Name( MailingList target, MailingList source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getName(); if ( src != null ) { if ( sourceDominant || target.getName() == null ) { target.setName( src ); target.setLocation( "name", source.getLocation( "name" ) ); } } } protected void mergeMailingList_Subscribe( MailingList target, MailingList source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getSubscribe(); if ( src != null ) { if ( sourceDominant || target.getSubscribe() == null ) { target.setSubscribe( src ); target.setLocation( "subscribe", source.getLocation( "subscribe" ) ); } } } protected void mergeMailingList_Unsubscribe( MailingList target, MailingList source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getUnsubscribe(); if ( src != null ) { if ( sourceDominant || target.getUnsubscribe() == null ) { target.setUnsubscribe( src ); target.setLocation( "unsubscribe", source.getLocation( "unsubscribe" ) ); } } } protected void mergeMailingList_Post( MailingList target, MailingList source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getPost(); if ( src != null ) { if ( sourceDominant || target.getPost() == null ) { target.setPost( src ); target.setLocation( "post", source.getLocation( "post" ) ); } } } protected void mergeMailingList_Archive( MailingList target, MailingList source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getArchive(); if ( src != null ) { if ( sourceDominant || target.getArchive() == null ) { target.setArchive( src ); target.setLocation( "archive", source.getLocation( "archive" ) ); } } } protected void mergeMailingList_OtherArchives( MailingList target, MailingList source, boolean sourceDominant, Map<Object, Object> context ) { List<String> src = source.getOtherArchives(); if ( !src.isEmpty() ) { List<String> tgt = target.getOtherArchives(); List<String> merged = new ArrayList<>( tgt.size() + src.size() ); merged.addAll( tgt ); merged.addAll( src ); target.setOtherArchives( merged ); } } protected void mergeDeveloper( Developer target, Developer source, boolean sourceDominant, Map<Object, Object> context ) { mergeContributor( target, source, sourceDominant, context ); mergeDeveloper_Id( target, source, sourceDominant, context ); } protected void mergeDeveloper_Id( Developer target, Developer source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getId(); if ( src != null ) { if ( sourceDominant || target.getId() == null ) { target.setId( src ); target.setLocation( "id", source.getLocation( "id" ) ); } } } protected void mergeContributor( Contributor target, Contributor source, boolean sourceDominant, Map<Object, Object> context ) { mergeContributor_Name( target, source, sourceDominant, context ); mergeContributor_Email( target, source, sourceDominant, context ); mergeContributor_Url( target, source, sourceDominant, context ); mergeContributor_Organization( target, source, sourceDominant, context ); mergeContributor_OrganizationUrl( target, source, sourceDominant, context ); mergeContributor_Timezone( target, source, sourceDominant, context ); mergeContributor_Roles( target, source, sourceDominant, context ); mergeContributor_Properties( target, source, sourceDominant, context ); } protected void mergeContributor_Name( Contributor target, Contributor source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getName(); if ( src != null ) { if ( sourceDominant || target.getName() == null ) { target.setName( src ); target.setLocation( "name", source.getLocation( "name" ) ); } } } protected void mergeContributor_Email( Contributor target, Contributor source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getEmail(); if ( src != null ) { if ( sourceDominant || target.getEmail() == null ) { target.setEmail( src ); target.setLocation( "email", source.getLocation( "email" ) ); } } } protected void mergeContributor_Url( Contributor target, Contributor source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getUrl(); if ( src != null ) { if ( sourceDominant || target.getUrl() == null ) { target.setUrl( src ); target.setLocation( "url", source.getLocation( "url" ) ); } } } protected void mergeContributor_Organization( Contributor target, Contributor source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getOrganization(); if ( src != null ) { if ( sourceDominant || target.getOrganization() == null ) { target.setOrganization( src ); target.setLocation( "organization", source.getLocation( "organization" ) ); } } } protected void mergeContributor_OrganizationUrl( Contributor target, Contributor source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getOrganizationUrl(); if ( src != null ) { if ( sourceDominant || target.getOrganizationUrl() == null ) { target.setOrganizationUrl( src ); target.setLocation( "organizationUrl", source.getLocation( "organizationUrl" ) ); } } } protected void mergeContributor_Timezone( Contributor target, Contributor source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getTimezone(); if ( src != null ) { if ( sourceDominant || target.getTimezone() == null ) { target.setTimezone( src ); target.setLocation( "timezone", source.getLocation( "timezone" ) ); } } } protected void mergeContributor_Roles( Contributor target, Contributor source, boolean sourceDominant, Map<Object, Object> context ) { List<String> src = source.getRoles(); if ( !src.isEmpty() ) { List<String> tgt = target.getRoles(); List<String> merged = new ArrayList<>( tgt.size() + src.size() ); merged.addAll( tgt ); merged.addAll( src ); target.setRoles( merged ); } } protected void mergeContributor_Properties( Contributor target, Contributor source, boolean sourceDominant, Map<Object, Object> context ) { Properties merged = new Properties(); if ( sourceDominant ) { merged.putAll( target.getProperties() ); merged.putAll( source.getProperties() ); } else { merged.putAll( source.getProperties() ); merged.putAll( target.getProperties() ); } target.setProperties( merged ); target.setLocation( "properties", InputLocation.merge( target.getLocation( "properties" ), source.getLocation( "properties" ), sourceDominant ) ); } protected void mergeIssueManagement( IssueManagement target, IssueManagement source, boolean sourceDominant, Map<Object, Object> context ) { mergeIssueManagement_Url( target, source, sourceDominant, context ); mergeIssueManagement_System( target, source, sourceDominant, context ); } protected void mergeIssueManagement_System( IssueManagement target, IssueManagement source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getSystem(); if ( src != null ) { if ( sourceDominant || target.getSystem() == null ) { target.setSystem( src ); target.setLocation( "system", source.getLocation( "system" ) ); } } } protected void mergeIssueManagement_Url( IssueManagement target, IssueManagement source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getUrl(); if ( src != null ) { if ( sourceDominant || target.getUrl() == null ) { target.setUrl( src ); target.setLocation( "url", source.getLocation( "url" ) ); } } } protected void mergeScm( Scm target, Scm source, boolean sourceDominant, Map<Object, Object> context ) { mergeScm_ChildScmConnectionInheritAppendPath( target, source, sourceDominant, context ); mergeScm_ChildScmDeveloperConnectionInheritAppendPath( target, source, sourceDominant, context ); mergeScm_ChildScmUrlInheritAppendPath( target, source, sourceDominant, context ); mergeScm_Url( target, source, sourceDominant, context ); mergeScm_Connection( target, source, sourceDominant, context ); mergeScm_DeveloperConnection( target, source, sourceDominant, context ); mergeScm_Tag( target, source, sourceDominant, context ); } protected void mergeScm_ChildScmConnectionInheritAppendPath( Scm target, Scm source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getChildScmConnectionInheritAppendPath(); if ( src != null ) { if ( sourceDominant || target.getChildScmConnectionInheritAppendPath() == null ) { target.setChildScmConnectionInheritAppendPath( src ); target.setLocation( "child.scm.connection.inherit.append.path", source.getLocation( "child.scm.connection.inherit.append.path" ) ); } } } protected void mergeScm_ChildScmDeveloperConnectionInheritAppendPath( Scm target, Scm source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getChildScmDeveloperConnectionInheritAppendPath(); if ( src != null ) { if ( sourceDominant || target.getChildScmDeveloperConnectionInheritAppendPath() == null ) { target.setChildScmDeveloperConnectionInheritAppendPath( src ); target.setLocation( "child.scm.developerConnection.inherit.append.path", source.getLocation( "child.scm.developerConnection.inherit.append.path" ) ); } } } protected void mergeScm_ChildScmUrlInheritAppendPath( Scm target, Scm source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getChildScmUrlInheritAppendPath(); if ( src != null ) { if ( sourceDominant || target.getChildScmUrlInheritAppendPath() == null ) { target.setChildScmUrlInheritAppendPath( src ); target.setLocation( "child.scm.url.inherit.append.path", source.getLocation( "child.scm.url.inherit.append.path" ) ); } } } protected void mergeScm_Url( Scm target, Scm source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getUrl(); if ( src != null ) { if ( sourceDominant || target.getUrl() == null ) { target.setUrl( src ); target.setLocation( "url", source.getLocation( "url" ) ); } } } protected void mergeScm_Connection( Scm target, Scm source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getConnection(); if ( src != null ) { if ( sourceDominant || target.getConnection() == null ) { target.setConnection( src ); target.setLocation( "connection", source.getLocation( "connection" ) ); } } } protected void mergeScm_DeveloperConnection( Scm target, Scm source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getDeveloperConnection(); if ( src != null ) { if ( sourceDominant || target.getDeveloperConnection() == null ) { target.setDeveloperConnection( src ); target.setLocation( "developerConnection", source.getLocation( "developerConnection" ) ); } } } protected void mergeScm_Tag( Scm target, Scm source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getTag(); if ( src != null ) { if ( sourceDominant || target.getTag() == null ) { target.setTag( src ); target.setLocation( "tag", source.getLocation( "tag" ) ); } } } protected void mergeCiManagement( CiManagement target, CiManagement source, boolean sourceDominant, Map<Object, Object> context ) { mergeCiManagement_System( target, source, sourceDominant, context ); mergeCiManagement_Url( target, source, sourceDominant, context ); mergeCiManagement_Notifiers( target, source, sourceDominant, context ); } protected void mergeCiManagement_System( CiManagement target, CiManagement source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getSystem(); if ( src != null ) { if ( sourceDominant || target.getSystem() == null ) { target.setSystem( src ); target.setLocation( "system", source.getLocation( "system" ) ); } } } protected void mergeCiManagement_Url( CiManagement target, CiManagement source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getUrl(); if ( src != null ) { if ( sourceDominant || target.getUrl() == null ) { target.setUrl( src ); target.setLocation( "url", source.getLocation( "url" ) ); } } } protected void mergeCiManagement_Notifiers( CiManagement target, CiManagement source, boolean sourceDominant, Map<Object, Object> context ) { target.setNotifiers( merge( target.getNotifiers(), source.getNotifiers(), sourceDominant, new NotifierKeyComputer() ) ); } protected void mergeNotifier( Notifier target, Notifier source, boolean sourceDominant, Map<Object, Object> context ) { mergeNotifier_Type( target, source, sourceDominant, context ); mergeNotifier_Address( target, source, sourceDominant, context ); mergeNotifier_Configuration( target, source, sourceDominant, context ); mergeNotifier_SendOnError( target, source, sourceDominant, context ); mergeNotifier_SendOnFailure( target, source, sourceDominant, context ); mergeNotifier_SendOnSuccess( target, source, sourceDominant, context ); mergeNotifier_SendOnWarning( target, source, sourceDominant, context ); } protected void mergeNotifier_Type( Notifier target, Notifier source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getType(); if ( src != null ) { if ( sourceDominant || target.getType() == null ) { target.setType( src ); } } } protected void mergeNotifier_Address( Notifier target, Notifier source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getAddress(); if ( src != null ) { if ( sourceDominant || target.getAddress() == null ) { target.setAddress( src ); } } } protected void mergeNotifier_Configuration( Notifier target, Notifier source, boolean sourceDominant, Map<Object, Object> context ) { Properties merged = new Properties(); if ( sourceDominant ) { merged.putAll( target.getConfiguration() ); merged.putAll( source.getConfiguration() ); } else { merged.putAll( source.getConfiguration() ); merged.putAll( target.getConfiguration() ); } target.setConfiguration( merged ); } protected void mergeNotifier_SendOnError( Notifier target, Notifier source, boolean sourceDominant, Map<Object, Object> context ) { if ( sourceDominant ) { target.setSendOnError( source.isSendOnError() ); } } protected void mergeNotifier_SendOnFailure( Notifier target, Notifier source, boolean sourceDominant, Map<Object, Object> context ) { if ( sourceDominant ) { target.setSendOnFailure( source.isSendOnFailure() ); } } protected void mergeNotifier_SendOnSuccess( Notifier target, Notifier source, boolean sourceDominant, Map<Object, Object> context ) { if ( sourceDominant ) { target.setSendOnSuccess( source.isSendOnSuccess() ); } } protected void mergeNotifier_SendOnWarning( Notifier target, Notifier source, boolean sourceDominant, Map<Object, Object> context ) { if ( sourceDominant ) { target.setSendOnWarning( source.isSendOnWarning() ); } } protected void mergePrerequisites( Prerequisites target, Prerequisites source, boolean sourceDominant, Map<Object, Object> context ) { mergePrerequisites_Maven( target, source, sourceDominant, context ); } protected void mergePrerequisites_Maven( Prerequisites target, Prerequisites source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getMaven(); if ( src != null ) { if ( sourceDominant || target.getMaven() == null ) { target.setMaven( src ); target.setLocation( "maven", source.getLocation( "maven" ) ); } } } protected void mergeBuild( Build target, Build source, boolean sourceDominant, Map<Object, Object> context ) { mergeBuildBase( target, source, sourceDominant, context ); mergeBuild_SourceDirectory( target, source, sourceDominant, context ); mergeBuild_ScriptSourceDirectory( target, source, sourceDominant, context ); mergeBuild_TestSourceDirectory( target, source, sourceDominant, context ); mergeBuild_OutputDirectory( target, source, sourceDominant, context ); mergeBuild_TestOutputDirectory( target, source, sourceDominant, context ); mergeBuild_Extensions( target, source, sourceDominant, context ); } protected void mergeBuild_SourceDirectory( Build target, Build source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getSourceDirectory(); if ( src != null ) { if ( sourceDominant || target.getSourceDirectory() == null ) { target.setSourceDirectory( src ); target.setLocation( "sourceDirectory", source.getLocation( "sourceDirectory" ) ); } } } protected void mergeBuild_ScriptSourceDirectory( Build target, Build source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getScriptSourceDirectory(); if ( src != null ) { if ( sourceDominant || target.getScriptSourceDirectory() == null ) { target.setScriptSourceDirectory( src ); target.setLocation( "scriptSourceDirectory", source.getLocation( "scriptSourceDirectory" ) ); } } } protected void mergeBuild_TestSourceDirectory( Build target, Build source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getTestSourceDirectory(); if ( src != null ) { if ( sourceDominant || target.getTestSourceDirectory() == null ) { target.setTestSourceDirectory( src ); target.setLocation( "testSourceDirectory", source.getLocation( "testSourceDirectory" ) ); } } } protected void mergeBuild_OutputDirectory( Build target, Build source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getOutputDirectory(); if ( src != null ) { if ( sourceDominant || target.getOutputDirectory() == null ) { target.setOutputDirectory( src ); target.setLocation( "outputDirectory", source.getLocation( "outputDirectory" ) ); } } } protected void mergeBuild_TestOutputDirectory( Build target, Build source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getTestOutputDirectory(); if ( src != null ) { if ( sourceDominant || target.getTestOutputDirectory() == null ) { target.setTestOutputDirectory( src ); target.setLocation( "testOutputDirectory", source.getLocation( "testOutputDirectory" ) ); } } } protected void mergeBuild_Extensions( Build target, Build source, boolean sourceDominant, Map<Object, Object> context ) { target.setExtensions( merge( target.getExtensions(), source.getExtensions(), sourceDominant, new ExtensionKeyComputer() ) ); } protected void mergeExtension( Extension target, Extension source, boolean sourceDominant, Map<Object, Object> context ) { mergeExtension_GroupId( target, source, sourceDominant, context ); mergeExtension_ArtifactId( target, source, sourceDominant, context ); mergeExtension_Version( target, source, sourceDominant, context ); } protected void mergeExtension_GroupId( Extension target, Extension source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getGroupId(); if ( src != null ) { if ( sourceDominant || target.getGroupId() == null ) { target.setGroupId( src ); target.setLocation( "groupId", source.getLocation( "groupId" ) ); } } } protected void mergeExtension_ArtifactId( Extension target, Extension source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getArtifactId(); if ( src != null ) { if ( sourceDominant || target.getArtifactId() == null ) { target.setArtifactId( src ); target.setLocation( "artifactId", source.getLocation( "artifactId" ) ); } } } protected void mergeExtension_Version( Extension target, Extension source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getVersion(); if ( src != null ) { if ( sourceDominant || target.getVersion() == null ) { target.setVersion( src ); target.setLocation( "version", source.getLocation( "version" ) ); } } } protected void mergeBuildBase( BuildBase target, BuildBase source, boolean sourceDominant, Map<Object, Object> context ) { mergePluginConfiguration( target, source, sourceDominant, context ); mergeBuildBase_DefaultGoal( target, source, sourceDominant, context ); mergeBuildBase_FinalName( target, source, sourceDominant, context ); mergeBuildBase_Directory( target, source, sourceDominant, context ); mergeBuildBase_Resources( target, source, sourceDominant, context ); mergeBuildBase_TestResources( target, source, sourceDominant, context ); mergeBuildBase_Filters( target, source, sourceDominant, context ); } protected void mergeBuildBase_DefaultGoal( BuildBase target, BuildBase source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getDefaultGoal(); if ( src != null ) { if ( sourceDominant || target.getDefaultGoal() == null ) { target.setDefaultGoal( src ); target.setLocation( "defaultGoal", source.getLocation( "defaultGoal" ) ); } } } protected void mergeBuildBase_Directory( BuildBase target, BuildBase source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getDirectory(); if ( src != null ) { if ( sourceDominant || target.getDirectory() == null ) { target.setDirectory( src ); target.setLocation( "directory", source.getLocation( "directory" ) ); } } } protected void mergeBuildBase_FinalName( BuildBase target, BuildBase source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getFinalName(); if ( src != null ) { if ( sourceDominant || target.getFinalName() == null ) { target.setFinalName( src ); target.setLocation( "finalName", source.getLocation( "finalName" ) ); } } } protected void mergeBuildBase_Filters( BuildBase target, BuildBase source, boolean sourceDominant, Map<Object, Object> context ) { List<String> src = source.getFilters(); if ( !src.isEmpty() ) { List<String> tgt = target.getFilters(); List<String> merged = new ArrayList<>( tgt.size() + src.size() ); merged.addAll( tgt ); merged.addAll( src ); target.setFilters( merged ); } } protected void mergeBuildBase_Resources( BuildBase target, BuildBase source, boolean sourceDominant, Map<Object, Object> context ) { target.setResources( merge( target.getResources(), source.getResources(), sourceDominant, new ResourceKeyComputer() ) ); } protected void mergeBuildBase_TestResources( BuildBase target, BuildBase source, boolean sourceDominant, Map<Object, Object> context ) { target.setTestResources( merge( target.getTestResources(), source.getTestResources(), sourceDominant, new ResourceKeyComputer() ) ); } protected void mergePluginConfiguration( PluginConfiguration target, PluginConfiguration source, boolean sourceDominant, Map<Object, Object> context ) { mergePluginContainer( target, source, sourceDominant, context ); mergePluginConfiguration_PluginManagement( target, source, sourceDominant, context ); } protected void mergePluginConfiguration_PluginManagement( PluginConfiguration target, PluginConfiguration source, boolean sourceDominant, Map<Object, Object> context ) { PluginManagement src = source.getPluginManagement(); if ( src != null ) { PluginManagement tgt = target.getPluginManagement(); if ( tgt == null ) { tgt = new PluginManagement(); target.setPluginManagement( tgt ); } mergePluginManagement( tgt, src, sourceDominant, context ); } } protected void mergePluginContainer( PluginContainer target, PluginContainer source, boolean sourceDominant, Map<Object, Object> context ) { mergePluginContainer_Plugins( target, source, sourceDominant, context ); } protected void mergePluginContainer_Plugins( PluginContainer target, PluginContainer source, boolean sourceDominant, Map<Object, Object> context ) { target.setPlugins( merge( target.getPlugins(), source.getPlugins(), sourceDominant, new PluginKeyComputer() ) ); } protected void mergePluginManagement( PluginManagement target, PluginManagement source, boolean sourceDominant, Map<Object, Object> context ) { mergePluginContainer( target, source, sourceDominant, context ); } protected void mergePlugin( Plugin target, Plugin source, boolean sourceDominant, Map<Object, Object> context ) { mergeConfigurationContainer( target, source, sourceDominant, context ); mergePlugin_GroupId( target, source, sourceDominant, context ); mergePlugin_ArtifactId( target, source, sourceDominant, context ); mergePlugin_Version( target, source, sourceDominant, context ); mergePlugin_Extensions( target, source, sourceDominant, context ); mergePlugin_Dependencies( target, source, sourceDominant, context ); mergePlugin_Executions( target, source, sourceDominant, context ); } protected void mergePlugin_GroupId( Plugin target, Plugin source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getGroupId(); if ( src != null ) { if ( sourceDominant || target.getGroupId() == null ) { target.setGroupId( src ); target.setLocation( "groupId", source.getLocation( "groupId" ) ); } } } protected void mergePlugin_ArtifactId( Plugin target, Plugin source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getArtifactId(); if ( src != null ) { if ( sourceDominant || target.getArtifactId() == null ) { target.setArtifactId( src ); target.setLocation( "artifactId", source.getLocation( "artifactId" ) ); } } } protected void mergePlugin_Version( Plugin target, Plugin source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getVersion(); if ( src != null ) { if ( sourceDominant || target.getVersion() == null ) { target.setVersion( src ); target.setLocation( "version", source.getLocation( "version" ) ); } } } protected void mergePlugin_Extensions( Plugin target, Plugin source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getExtensions(); if ( src != null ) { if ( sourceDominant || target.getExtensions() == null ) { target.setExtensions( src ); target.setLocation( "extensions", source.getLocation( "extensions" ) ); } } } protected void mergePlugin_Dependencies( Plugin target, Plugin source, boolean sourceDominant, Map<Object, Object> context ) { target.setDependencies( merge( target.getDependencies(), source.getDependencies(), sourceDominant, new DependencyKeyComputer() ) ); } protected void mergePlugin_Executions( Plugin target, Plugin source, boolean sourceDominant, Map<Object, Object> context ) { target.setExecutions( merge( target.getExecutions(), source.getExecutions(), sourceDominant, new ExecutionKeyComputer() ) ); } protected void mergeConfigurationContainer( ConfigurationContainer target, ConfigurationContainer source, boolean sourceDominant, Map<Object, Object> context ) { mergeConfigurationContainer_Inherited( target, source, sourceDominant, context ); mergeConfigurationContainer_Configuration( target, source, sourceDominant, context ); } protected void mergeConfigurationContainer_Inherited( ConfigurationContainer target, ConfigurationContainer source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getInherited(); if ( src != null ) { if ( sourceDominant || target.getInherited() == null ) { target.setInherited( src ); target.setLocation( "inherited", source.getLocation( "inherited" ) ); } } } protected void mergeConfigurationContainer_Configuration( ConfigurationContainer target, ConfigurationContainer source, boolean sourceDominant, Map<Object, Object> context ) { Xpp3Dom src = (Xpp3Dom) source.getConfiguration(); if ( src != null ) { Xpp3Dom tgt = (Xpp3Dom) target.getConfiguration(); if ( sourceDominant || tgt == null ) { tgt = Xpp3Dom.mergeXpp3Dom( new Xpp3Dom( src ), tgt ); } else { tgt = Xpp3Dom.mergeXpp3Dom( tgt, src ); } target.setConfiguration( tgt ); } } protected void mergePluginExecution( PluginExecution target, PluginExecution source, boolean sourceDominant, Map<Object, Object> context ) { mergeConfigurationContainer( target, source, sourceDominant, context ); mergePluginExecution_Id( target, source, sourceDominant, context ); mergePluginExecution_Phase( target, source, sourceDominant, context ); mergePluginExecution_Goals( target, source, sourceDominant, context ); } protected void mergePluginExecution_Id( PluginExecution target, PluginExecution source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getId(); if ( src != null ) { if ( sourceDominant || target.getId() == null ) { target.setId( src ); target.setLocation( "id", source.getLocation( "id" ) ); } } } protected void mergePluginExecution_Phase( PluginExecution target, PluginExecution source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getPhase(); if ( src != null ) { if ( sourceDominant || target.getPhase() == null ) { target.setPhase( src ); target.setLocation( "phase", source.getLocation( "phase" ) ); } } } protected void mergePluginExecution_Goals( PluginExecution target, PluginExecution source, boolean sourceDominant, Map<Object, Object> context ) { List<String> src = source.getGoals(); if ( !src.isEmpty() ) { List<String> tgt = target.getGoals(); List<String> merged = new ArrayList<>( tgt.size() + src.size() ); merged.addAll( tgt ); merged.addAll( src ); target.setGoals( merged ); } } protected void mergeResource( Resource target, Resource source, boolean sourceDominant, Map<Object, Object> context ) { mergeFileSet( target, source, sourceDominant, context ); mergeResource_TargetPath( target, source, sourceDominant, context ); mergeResource_Filtering( target, source, sourceDominant, context ); mergeResource_MergeId( target, source, sourceDominant, context ); } protected void mergeResource_TargetPath( Resource target, Resource source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getTargetPath(); if ( src != null ) { if ( sourceDominant || target.getTargetPath() == null ) { target.setTargetPath( src ); target.setLocation( "targetPath", source.getLocation( "targetPath" ) ); } } } protected void mergeResource_Filtering( Resource target, Resource source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getFiltering(); if ( src != null ) { if ( sourceDominant || target.getFiltering() == null ) { target.setFiltering( src ); target.setLocation( "filtering", source.getLocation( "filtering" ) ); } } } protected void mergeResource_MergeId( Resource target, Resource source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getMergeId(); if ( src != null ) { if ( sourceDominant || target.getMergeId() == null ) { target.setMergeId( src ); } } } protected void mergeFileSet( FileSet target, FileSet source, boolean sourceDominant, Map<Object, Object> context ) { mergePatternSet( target, source, sourceDominant, context ); mergeFileSet_Directory( target, source, sourceDominant, context ); } protected void mergeFileSet_Directory( FileSet target, FileSet source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getDirectory(); if ( src != null ) { if ( sourceDominant || target.getDirectory() == null ) { target.setDirectory( src ); target.setLocation( "directory", source.getLocation( "directory" ) ); } } } protected void mergePatternSet( PatternSet target, PatternSet source, boolean sourceDominant, Map<Object, Object> context ) { mergePatternSet_Includes( target, source, sourceDominant, context ); mergePatternSet_Excludes( target, source, sourceDominant, context ); } protected void mergePatternSet_Includes( PatternSet target, PatternSet source, boolean sourceDominant, Map<Object, Object> context ) { List<String> src = source.getIncludes(); if ( !src.isEmpty() ) { List<String> tgt = target.getIncludes(); List<String> merged = new ArrayList<>( tgt.size() + src.size() ); merged.addAll( tgt ); merged.addAll( src ); target.setIncludes( merged ); } } protected void mergePatternSet_Excludes( PatternSet target, PatternSet source, boolean sourceDominant, Map<Object, Object> context ) { List<String> src = source.getExcludes(); if ( !src.isEmpty() ) { List<String> tgt = target.getExcludes(); List<String> merged = new ArrayList<>( tgt.size() + src.size() ); merged.addAll( tgt ); merged.addAll( src ); target.setExcludes( merged ); } } protected void mergeProfile( Profile target, Profile source, boolean sourceDominant, Map<Object, Object> context ) { mergeModelBase( target, source, sourceDominant, context ); // TODO } protected void mergeActivation( Activation target, Activation source, boolean sourceDominant, Map<Object, Object> context ) { // TODO } protected Object getDependencyKey( Dependency dependency ) { return dependency; } protected Object getPluginKey( Plugin plugin ) { return plugin; } protected Object getPluginExecutionKey( PluginExecution pluginExecution ) { return pluginExecution; } protected Object getReportPluginKey( ReportPlugin reportPlugin ) { return reportPlugin; } protected Object getReportSetKey( ReportSet reportSet ) { return reportSet; } protected Object getLicenseKey( License license ) { return license; } protected Object getMailingListKey( MailingList mailingList ) { return mailingList; } protected Object getDeveloperKey( Developer developer ) { return developer; } protected Object getContributorKey( Contributor contributor ) { return contributor; } protected Object getProfileKey( Profile profile ) { return profile; } protected Object getRepositoryKey( Repository repository ) { return getRepositoryBaseKey( repository ); } protected Object getRepositoryBaseKey( RepositoryBase repositoryBase ) { return repositoryBase; } protected Object getNotifierKey( Notifier notifier ) { return notifier; } protected Object getResourceKey( Resource resource ) { return resource; } protected Object getExtensionKey( Extension extension ) { return extension; } protected Object getExclusionKey( Exclusion exclusion ) { return exclusion; } /** * Use to compute keys for data structures * @param <T> */ private interface KeyComputer<T> { Object key( T t ); } /** * Remapping function * @param <T> */ private interface Remapping<T> { T merge( T u, T v ); } /** * KeyComputer for Dependency */ private final class DependencyKeyComputer implements KeyComputer<Dependency> { @Override public Object key( Dependency dependency ) { return getDependencyKey( dependency ); } } /** * KeyComputer for License */ private class LicenseKeyComputer implements KeyComputer<License> { @Override public Object key( License license ) { return getLicenseKey( license ); } } /** * KeyComputer for MailingList */ private class MailingListKeyComputer implements KeyComputer<MailingList> { @Override public Object key( MailingList mailingList ) { return getMailingListKey( mailingList ); } } /** * KeyComputer for Developer */ private class DeveloperKeyComputer implements KeyComputer<Developer> { @Override public Object key( Developer developer ) { return getDeveloperKey( developer ); } } /** * KeyComputer for Contributor */ private class ContributorKeyComputer implements KeyComputer<Contributor> { @Override public Object key( Contributor contributor ) { return getContributorKey( contributor ); } } /** * KeyComputer for Profile */ private class ProfileKeyComputer implements KeyComputer<Profile> { @Override public Object key( Profile profile ) { return getProfileKey( profile ); } } /** * KeyComputer for Repository */ private class RepositoryKeyComputer implements KeyComputer<Repository> { @Override public Object key( Repository repository ) { return getRepositoryKey( repository ); } } /** * KeyComputer for ReportPlugin */ private class ReportPluginKeyComputer implements KeyComputer<ReportPlugin> { @Override public Object key( ReportPlugin plugin ) { return getReportPluginKey( plugin ); } } /** * KeyComputer for Plugin */ private class PluginKeyComputer implements KeyComputer<Plugin> { @Override public Object key( Plugin plugin ) { return getPluginKey( plugin ); } } /** * KeyComputer for ReportSet */ private class ReportSetKeyComputer implements KeyComputer<ReportSet> { @Override public Object key( ReportSet reportSet ) { return getReportSetKey( reportSet ); } } /** * KeyComputer for Notifier */ private class NotifierKeyComputer implements KeyComputer<Notifier> { @Override public Object key( Notifier notifier ) { return getNotifierKey( notifier ); } } /** * KeyComputer for Extension */ private class ExtensionKeyComputer implements KeyComputer<Extension> { @Override public Object key( Extension extension ) { return getExtensionKey( extension ); } } /** * KeyComputer for Resource */ private class ResourceKeyComputer implements KeyComputer<Resource> { @Override public Object key( Resource resource ) { return getResourceKey( resource ); } } /** * KeyComputer for PluginExecution */ private class ExecutionKeyComputer implements KeyComputer<PluginExecution> { @Override public Object key( PluginExecution pluginExecution ) { return getPluginExecutionKey( pluginExecution ); } } /** * KeyComputer for Exclusion */ private class ExclusionKeyComputer implements KeyComputer<Exclusion> { @Override public Object key( Exclusion exclusion ) { return getExclusionKey( exclusion ); } } /** * Return the second value if <code>sourceDominant</code> is true, the first one otherwise. * @param <T> */ private static class SourceDominant<T> implements Remapping<T> { private final boolean sourceDominant; SourceDominant( boolean sourceDominant ) { this.sourceDominant = sourceDominant; } @Override public T merge( T u, T v ) { return sourceDominant ? v : u; } } /** * Merge two lists */ private static <T> List<T> merge( List<T> tgt, List<T> src, boolean sourceDominant, KeyComputer<T> computer ) { return merge( tgt, src, computer, new SourceDominant<T>( sourceDominant ) ); } private static <T> List<T> merge( List<T> tgt, List<T> src, KeyComputer<T> computer, Remapping<T> remapping ) { if ( src.isEmpty() ) { return tgt; } MergingList<T> list; if ( tgt instanceof MergingList ) { list = (MergingList<T>) tgt; } else { list = new MergingList<>( computer, src.size() + tgt.size() ); list.mergeAll( tgt, new SourceDominant<T>( true ) ); } list.mergeAll( src, remapping ); return list; } /** * Merging list * @param <V> */ private static class MergingList<V> extends AbstractList<V> implements java.io.Serializable { private final KeyComputer<V> keyComputer; private Map<Object, V> map; private List<V> list; MergingList( KeyComputer<V> keyComputer, int initialCapacity ) { this.map = new LinkedHashMap<>( initialCapacity ); this.keyComputer = keyComputer; } Object writeReplace() throws ObjectStreamException { return new ArrayList<>( this ); } @Override public Iterator<V> iterator() { if ( map != null ) { return map.values().iterator(); } else { return list.iterator(); } } void mergeAll( Collection<V> vs, Remapping<V> remapping ) { if ( map == null ) { map = new LinkedHashMap<>( list.size() + vs.size() ); for ( V v : list ) { map.put( keyComputer.key( v ), v ); } list = null; } if ( vs instanceof MergingList && ( (MergingList) vs ).map != null ) { for ( Map.Entry<Object, V> e : ( (MergingList<V>) vs ).map.entrySet() ) { Object key = e.getKey(); V oldValue = map.get( key ); // JDK8: this should be a call to map.merge( key, v, remapping ) V newValue = ( oldValue == null ) ? e.getValue() : remapping.merge( oldValue, e.getValue() ); if ( newValue == null ) { remove( key ); } else if ( newValue != oldValue ) { map.put( key, newValue ); } } } else { for ( V v : vs ) { Object key = keyComputer.key( v ); // JDK8: this should be a call to map.merge( key, v, remapping ) V oldValue = map.get( key ); V newValue = ( oldValue == null ) ? v : remapping.merge( oldValue, v ); if ( newValue == null ) { remove( key ); } else { map.put( key, newValue ); } } } } @Override public boolean contains( Object o ) { if ( map != null ) { return map.containsValue( o ); } else { return list.contains( o ); } } private List<V> asList() { if ( list == null ) { list = new ArrayList<>( map.values() ); map = null; } return list; } @Override public void add( int index, V element ) { asList().add( index, element ); } @Override public V remove( int index ) { return asList().remove( index ); } @Override public V get( int index ) { return asList().get( index ); } @Override public int size() { if ( map != null ) { return map.size(); } else { return list.size(); } } } }
⏎ org/apache/maven/model/merge/ModelMerger.java
Or download all of them as a single archive file:
File name: maven-model-3.8.6-src.zip File size: 14178 bytes Release date: 2022-06-06 Download
⇒ maven-model-builder-3.8.6.jar - Model Builder Module
⇐ maven-embedder-3.8.6.jar - Maven Embedder Module
2023-07-11, 920👍, 0💬
Popular Posts:
The Jakarta-ORO Java classes are a set of text-processing Java classes that provide Perl5 compatible...
JDOM provides a solution for using XML from Java that is as simple as Java itself. There is no compe...
Where to find answers to frequently asked questions on Downloading and Installing ojdbc.jar - JDBC D...
What Is javax.websocket-api-1.1. jar?javax.websocket-api-1.1. jaris the JAR file for Java API for We...
How to download and install ojdbc6.jar for Oracle 11g R2? ojdbc6.jar for Oracle 11g R2 is a Java 6, ...