All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.maven.settings.v4.SettingsTransformer Maven / Gradle / Ivy

The newest version!
// =================== DO NOT EDIT THIS FILE ====================
//  Generated by Modello Velocity from transformer.vm
//  template, any modifications will be overwritten.
// ==============================================================
package org.apache.maven.settings.v4;

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.Properties;
import java.util.Objects;
import java.util.function.BinaryOperator;
import java.util.function.Function;
import java.util.function.Supplier;
import java.util.stream.Collectors;

import org.apache.maven.api.annotations.Generated;
import org.apache.maven.api.xml.XmlNode;
import org.apache.maven.api.settings.TrackableBase;
import org.apache.maven.api.settings.IdentifiableBase;
import org.apache.maven.api.settings.Settings;
import org.apache.maven.api.settings.Proxy;
import org.apache.maven.api.settings.Server;
import org.apache.maven.api.settings.Mirror;
import org.apache.maven.api.settings.Profile;
import org.apache.maven.api.settings.Activation;
import org.apache.maven.api.settings.RepositoryBase;
import org.apache.maven.api.settings.Repository;
import org.apache.maven.api.settings.RepositoryPolicy;
import org.apache.maven.api.settings.ActivationProperty;
import org.apache.maven.api.settings.ActivationOS;
import org.apache.maven.api.settings.ActivationFile;
import org.apache.maven.api.settings.InputLocation;
import org.apache.maven.api.settings.InputSource;
import org.apache.maven.internal.xml.XmlNodeImpl;

@Generated
public class SettingsTransformer {

    private final Function transformer;

    public SettingsTransformer(Function transformer) {
        this.transformer = transformer;
    }

    /**
     * Transforms the given model
     */
    public Settings visit(Settings target) {
        Objects.requireNonNull(target, "target cannot be null");
        return transformSettings(target);
    }

    /**
     * The transformation function.
     */
    protected String transform(String value) {
        return transformer.apply(value);
    }

    protected TrackableBase transformTrackableBase(TrackableBase target) {
        if (target == null) {
            return null;
        }
        Supplier creator = () -> TrackableBase.newBuilder(target);
        TrackableBase.Builder builder = null;
        return builder != null ? builder.build() : target;
    }


    protected IdentifiableBase transformIdentifiableBase(IdentifiableBase target) {
        if (target == null) {
            return null;
        }
        Supplier creator = () -> IdentifiableBase.newBuilder(target);
        IdentifiableBase.Builder builder = null;
        builder = (IdentifiableBase.Builder) transformIdentifiableBase_Id(creator, builder, target);
        return builder != null ? builder.build() : target;
    }

    protected IdentifiableBase.Builder transformIdentifiableBase_Id(Supplier creator, IdentifiableBase.Builder builder, IdentifiableBase target) {
        String oldVal = target.getId();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).id(newVal) : builder;
    }

    protected Settings transformSettings(Settings target) {
        if (target == null) {
            return null;
        }
        Supplier creator = () -> Settings.newBuilder(target);
        Settings.Builder builder = null;
        builder = (Settings.Builder) transformSettings_LocalRepository(creator, builder, target);
        builder = (Settings.Builder) transformSettings_InteractiveMode(creator, builder, target);
        builder = (Settings.Builder) transformSettings_UsePluginRegistry(creator, builder, target);
        builder = (Settings.Builder) transformSettings_Offline(creator, builder, target);
        builder = (Settings.Builder) transformSettings_Proxies(creator, builder, target);
        builder = (Settings.Builder) transformSettings_Servers(creator, builder, target);
        builder = (Settings.Builder) transformSettings_Mirrors(creator, builder, target);
        builder = (Settings.Builder) transformSettings_Repositories(creator, builder, target);
        builder = (Settings.Builder) transformSettings_PluginRepositories(creator, builder, target);
        builder = (Settings.Builder) transformSettings_Profiles(creator, builder, target);
        builder = (Settings.Builder) transformSettings_ActiveProfiles(creator, builder, target);
        builder = (Settings.Builder) transformSettings_PluginGroups(creator, builder, target);
        return builder != null ? builder.build() : target;
    }

    protected Settings.Builder transformSettings_LocalRepository(Supplier creator, Settings.Builder builder, Settings target) {
        String oldVal = target.getLocalRepository();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).localRepository(newVal) : builder;
    }
    protected Settings.Builder transformSettings_InteractiveMode(Supplier creator, Settings.Builder builder, Settings target) {
        // nothing to do, the transformer only handles strings
        return builder;
    }
    protected Settings.Builder transformSettings_UsePluginRegistry(Supplier creator, Settings.Builder builder, Settings target) {
        // nothing to do, the transformer only handles strings
        return builder;
    }
    protected Settings.Builder transformSettings_Offline(Supplier creator, Settings.Builder builder, Settings target) {
        // nothing to do, the transformer only handles strings
        return builder;
    }
    protected Settings.Builder transformSettings_Proxies(Supplier creator, Settings.Builder builder, Settings target) {
        List oldVal = target.getProxies();
        List newVal = transform(oldVal, this::transformProxy);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).proxies(newVal) : builder;
    }
    protected Settings.Builder transformSettings_Servers(Supplier creator, Settings.Builder builder, Settings target) {
        List oldVal = target.getServers();
        List newVal = transform(oldVal, this::transformServer);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).servers(newVal) : builder;
    }
    protected Settings.Builder transformSettings_Mirrors(Supplier creator, Settings.Builder builder, Settings target) {
        List oldVal = target.getMirrors();
        List newVal = transform(oldVal, this::transformMirror);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).mirrors(newVal) : builder;
    }
    protected Settings.Builder transformSettings_Repositories(Supplier creator, Settings.Builder builder, Settings target) {
        List oldVal = target.getRepositories();
        List newVal = transform(oldVal, this::transformRepository);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).repositories(newVal) : builder;
    }
    protected Settings.Builder transformSettings_PluginRepositories(Supplier creator, Settings.Builder builder, Settings target) {
        List oldVal = target.getPluginRepositories();
        List newVal = transform(oldVal, this::transformRepository);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).pluginRepositories(newVal) : builder;
    }
    protected Settings.Builder transformSettings_Profiles(Supplier creator, Settings.Builder builder, Settings target) {
        List oldVal = target.getProfiles();
        List newVal = transform(oldVal, this::transformProfile);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).profiles(newVal) : builder;
    }
    protected Settings.Builder transformSettings_ActiveProfiles(Supplier creator, Settings.Builder builder, Settings target) {
        List oldVal = target.getActiveProfiles();
        List newVal = transform(oldVal, this::transform);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).activeProfiles(newVal) : builder;
    }
    protected Settings.Builder transformSettings_PluginGroups(Supplier creator, Settings.Builder builder, Settings target) {
        List oldVal = target.getPluginGroups();
        List newVal = transform(oldVal, this::transform);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).pluginGroups(newVal) : builder;
    }

    protected Proxy transformProxy(Proxy target) {
        if (target == null) {
            return null;
        }
        Supplier creator = () -> Proxy.newBuilder(target);
        Proxy.Builder builder = null;
        builder = (Proxy.Builder) transformProxy_ActiveString(creator, builder, target);
        builder = (Proxy.Builder) transformProxy_Protocol(creator, builder, target);
        builder = (Proxy.Builder) transformProxy_Username(creator, builder, target);
        builder = (Proxy.Builder) transformProxy_Password(creator, builder, target);
        builder = (Proxy.Builder) transformProxy_PortString(creator, builder, target);
        builder = (Proxy.Builder) transformProxy_Host(creator, builder, target);
        builder = (Proxy.Builder) transformProxy_NonProxyHosts(creator, builder, target);
        builder = (Proxy.Builder) transformIdentifiableBase_Id(creator, builder, target);
        return builder != null ? builder.build() : target;
    }

    protected Proxy.Builder transformProxy_ActiveString(Supplier creator, Proxy.Builder builder, Proxy target) {
        String oldVal = target.getActiveString();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).activeString(newVal) : builder;
    }
    protected Proxy.Builder transformProxy_Protocol(Supplier creator, Proxy.Builder builder, Proxy target) {
        String oldVal = target.getProtocol();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).protocol(newVal) : builder;
    }
    protected Proxy.Builder transformProxy_Username(Supplier creator, Proxy.Builder builder, Proxy target) {
        String oldVal = target.getUsername();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).username(newVal) : builder;
    }
    protected Proxy.Builder transformProxy_Password(Supplier creator, Proxy.Builder builder, Proxy target) {
        String oldVal = target.getPassword();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).password(newVal) : builder;
    }
    protected Proxy.Builder transformProxy_PortString(Supplier creator, Proxy.Builder builder, Proxy target) {
        String oldVal = target.getPortString();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).portString(newVal) : builder;
    }
    protected Proxy.Builder transformProxy_Host(Supplier creator, Proxy.Builder builder, Proxy target) {
        String oldVal = target.getHost();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).host(newVal) : builder;
    }
    protected Proxy.Builder transformProxy_NonProxyHosts(Supplier creator, Proxy.Builder builder, Proxy target) {
        String oldVal = target.getNonProxyHosts();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).nonProxyHosts(newVal) : builder;
    }
    protected Proxy.Builder transformProxy_Id(Supplier creator, Proxy.Builder builder, Proxy target) {
        String oldVal = target.getId();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).id(newVal) : builder;
    }

    protected Server transformServer(Server target) {
        if (target == null) {
            return null;
        }
        Supplier creator = () -> Server.newBuilder(target);
        Server.Builder builder = null;
        builder = (Server.Builder) transformServer_Username(creator, builder, target);
        builder = (Server.Builder) transformServer_Password(creator, builder, target);
        builder = (Server.Builder) transformServer_PrivateKey(creator, builder, target);
        builder = (Server.Builder) transformServer_Passphrase(creator, builder, target);
        builder = (Server.Builder) transformServer_FilePermissions(creator, builder, target);
        builder = (Server.Builder) transformServer_DirectoryPermissions(creator, builder, target);
        builder = (Server.Builder) transformServer_Configuration(creator, builder, target);
        builder = (Server.Builder) transformIdentifiableBase_Id(creator, builder, target);
        return builder != null ? builder.build() : target;
    }

    protected Server.Builder transformServer_Username(Supplier creator, Server.Builder builder, Server target) {
        String oldVal = target.getUsername();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).username(newVal) : builder;
    }
    protected Server.Builder transformServer_Password(Supplier creator, Server.Builder builder, Server target) {
        String oldVal = target.getPassword();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).password(newVal) : builder;
    }
    protected Server.Builder transformServer_PrivateKey(Supplier creator, Server.Builder builder, Server target) {
        String oldVal = target.getPrivateKey();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).privateKey(newVal) : builder;
    }
    protected Server.Builder transformServer_Passphrase(Supplier creator, Server.Builder builder, Server target) {
        String oldVal = target.getPassphrase();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).passphrase(newVal) : builder;
    }
    protected Server.Builder transformServer_FilePermissions(Supplier creator, Server.Builder builder, Server target) {
        String oldVal = target.getFilePermissions();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).filePermissions(newVal) : builder;
    }
    protected Server.Builder transformServer_DirectoryPermissions(Supplier creator, Server.Builder builder, Server target) {
        String oldVal = target.getDirectoryPermissions();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).directoryPermissions(newVal) : builder;
    }
    protected Server.Builder transformServer_Configuration(Supplier creator, Server.Builder builder, Server target) {
        XmlNode oldVal = target.getConfiguration();
        XmlNode newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).configuration(newVal) : builder;
    }
    protected Server.Builder transformServer_Id(Supplier creator, Server.Builder builder, Server target) {
        String oldVal = target.getId();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).id(newVal) : builder;
    }

    protected Mirror transformMirror(Mirror target) {
        if (target == null) {
            return null;
        }
        Supplier creator = () -> Mirror.newBuilder(target);
        Mirror.Builder builder = null;
        builder = (Mirror.Builder) transformMirror_MirrorOf(creator, builder, target);
        builder = (Mirror.Builder) transformMirror_Name(creator, builder, target);
        builder = (Mirror.Builder) transformMirror_Url(creator, builder, target);
        builder = (Mirror.Builder) transformMirror_Layout(creator, builder, target);
        builder = (Mirror.Builder) transformMirror_MirrorOfLayouts(creator, builder, target);
        builder = (Mirror.Builder) transformMirror_Blocked(creator, builder, target);
        builder = (Mirror.Builder) transformIdentifiableBase_Id(creator, builder, target);
        return builder != null ? builder.build() : target;
    }

    protected Mirror.Builder transformMirror_MirrorOf(Supplier creator, Mirror.Builder builder, Mirror target) {
        String oldVal = target.getMirrorOf();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).mirrorOf(newVal) : builder;
    }
    protected Mirror.Builder transformMirror_Name(Supplier creator, Mirror.Builder builder, Mirror target) {
        String oldVal = target.getName();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).name(newVal) : builder;
    }
    protected Mirror.Builder transformMirror_Url(Supplier creator, Mirror.Builder builder, Mirror target) {
        String oldVal = target.getUrl();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).url(newVal) : builder;
    }
    protected Mirror.Builder transformMirror_Layout(Supplier creator, Mirror.Builder builder, Mirror target) {
        String oldVal = target.getLayout();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).layout(newVal) : builder;
    }
    protected Mirror.Builder transformMirror_MirrorOfLayouts(Supplier creator, Mirror.Builder builder, Mirror target) {
        String oldVal = target.getMirrorOfLayouts();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).mirrorOfLayouts(newVal) : builder;
    }
    protected Mirror.Builder transformMirror_Blocked(Supplier creator, Mirror.Builder builder, Mirror target) {
        // nothing to do, the transformer only handles strings
        return builder;
    }
    protected Mirror.Builder transformMirror_Id(Supplier creator, Mirror.Builder builder, Mirror target) {
        String oldVal = target.getId();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).id(newVal) : builder;
    }

    protected Profile transformProfile(Profile target) {
        if (target == null) {
            return null;
        }
        Supplier creator = () -> Profile.newBuilder(target);
        Profile.Builder builder = null;
        builder = (Profile.Builder) transformProfile_Activation(creator, builder, target);
        builder = (Profile.Builder) transformProfile_Properties(creator, builder, target);
        builder = (Profile.Builder) transformProfile_Repositories(creator, builder, target);
        builder = (Profile.Builder) transformProfile_PluginRepositories(creator, builder, target);
        builder = (Profile.Builder) transformIdentifiableBase_Id(creator, builder, target);
        return builder != null ? builder.build() : target;
    }

    protected Profile.Builder transformProfile_Activation(Supplier creator, Profile.Builder builder, Profile target) {
        Activation oldVal = target.getActivation();
        Activation newVal = transformActivation(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).activation(newVal) : builder;
    }
    protected Profile.Builder transformProfile_Properties(Supplier creator, Profile.Builder builder, Profile target) {
        Map props = target.getProperties();
        Map newProps = null;
        for (Map.Entry entry : props.entrySet()) {
            String newVal = transform(entry.getValue());
            if (newVal != null && newVal != entry.getValue()) {
                if (newProps == null) {
                    newProps = new HashMap<>();
                    newProps.putAll(props);
                    builder = builder != null ? builder : creator.get();
                    builder.properties(newProps);
                }
                newProps.put(entry.getKey(), newVal);
            }
        }
        return builder;
    }
    protected Profile.Builder transformProfile_Repositories(Supplier creator, Profile.Builder builder, Profile target) {
        List oldVal = target.getRepositories();
        List newVal = transform(oldVal, this::transformRepository);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).repositories(newVal) : builder;
    }
    protected Profile.Builder transformProfile_PluginRepositories(Supplier creator, Profile.Builder builder, Profile target) {
        List oldVal = target.getPluginRepositories();
        List newVal = transform(oldVal, this::transformRepository);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).pluginRepositories(newVal) : builder;
    }
    protected Profile.Builder transformProfile_Id(Supplier creator, Profile.Builder builder, Profile target) {
        String oldVal = target.getId();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).id(newVal) : builder;
    }

    protected Activation transformActivation(Activation target) {
        if (target == null) {
            return null;
        }
        Supplier creator = () -> Activation.newBuilder(target);
        Activation.Builder builder = null;
        builder = (Activation.Builder) transformActivation_ActiveByDefault(creator, builder, target);
        builder = (Activation.Builder) transformActivation_Jdk(creator, builder, target);
        builder = (Activation.Builder) transformActivation_Os(creator, builder, target);
        builder = (Activation.Builder) transformActivation_Property(creator, builder, target);
        builder = (Activation.Builder) transformActivation_File(creator, builder, target);
        builder = (Activation.Builder) transformActivation_Packaging(creator, builder, target);
        builder = (Activation.Builder) transformActivation_Condition(creator, builder, target);
        return builder != null ? builder.build() : target;
    }

    protected Activation.Builder transformActivation_ActiveByDefault(Supplier creator, Activation.Builder builder, Activation target) {
        // nothing to do, the transformer only handles strings
        return builder;
    }
    protected Activation.Builder transformActivation_Jdk(Supplier creator, Activation.Builder builder, Activation target) {
        String oldVal = target.getJdk();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).jdk(newVal) : builder;
    }
    protected Activation.Builder transformActivation_Os(Supplier creator, Activation.Builder builder, Activation target) {
        ActivationOS oldVal = target.getOs();
        ActivationOS newVal = transformActivationOS(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).os(newVal) : builder;
    }
    protected Activation.Builder transformActivation_Property(Supplier creator, Activation.Builder builder, Activation target) {
        ActivationProperty oldVal = target.getProperty();
        ActivationProperty newVal = transformActivationProperty(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).property(newVal) : builder;
    }
    protected Activation.Builder transformActivation_File(Supplier creator, Activation.Builder builder, Activation target) {
        ActivationFile oldVal = target.getFile();
        ActivationFile newVal = transformActivationFile(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).file(newVal) : builder;
    }
    protected Activation.Builder transformActivation_Packaging(Supplier creator, Activation.Builder builder, Activation target) {
        String oldVal = target.getPackaging();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).packaging(newVal) : builder;
    }
    protected Activation.Builder transformActivation_Condition(Supplier creator, Activation.Builder builder, Activation target) {
        String oldVal = target.getCondition();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).condition(newVal) : builder;
    }

    protected RepositoryBase transformRepositoryBase(RepositoryBase target) {
        if (target == null) {
            return null;
        }
        Supplier creator = () -> RepositoryBase.newBuilder(target);
        RepositoryBase.Builder builder = null;
        builder = (RepositoryBase.Builder) transformRepositoryBase_Name(creator, builder, target);
        builder = (RepositoryBase.Builder) transformRepositoryBase_Url(creator, builder, target);
        builder = (RepositoryBase.Builder) transformRepositoryBase_Layout(creator, builder, target);
        builder = (RepositoryBase.Builder) transformIdentifiableBase_Id(creator, builder, target);
        return builder != null ? builder.build() : target;
    }

    protected RepositoryBase.Builder transformRepositoryBase_Name(Supplier creator, RepositoryBase.Builder builder, RepositoryBase target) {
        String oldVal = target.getName();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).name(newVal) : builder;
    }
    protected RepositoryBase.Builder transformRepositoryBase_Url(Supplier creator, RepositoryBase.Builder builder, RepositoryBase target) {
        String oldVal = target.getUrl();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).url(newVal) : builder;
    }
    protected RepositoryBase.Builder transformRepositoryBase_Layout(Supplier creator, RepositoryBase.Builder builder, RepositoryBase target) {
        String oldVal = target.getLayout();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).layout(newVal) : builder;
    }
    protected RepositoryBase.Builder transformRepositoryBase_Id(Supplier creator, RepositoryBase.Builder builder, RepositoryBase target) {
        String oldVal = target.getId();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).id(newVal) : builder;
    }

    protected Repository transformRepository(Repository target) {
        if (target == null) {
            return null;
        }
        Supplier creator = () -> Repository.newBuilder(target);
        Repository.Builder builder = null;
        builder = (Repository.Builder) transformRepository_Releases(creator, builder, target);
        builder = (Repository.Builder) transformRepository_Snapshots(creator, builder, target);
        builder = (Repository.Builder) transformRepositoryBase_Name(creator, builder, target);
        builder = (Repository.Builder) transformRepositoryBase_Url(creator, builder, target);
        builder = (Repository.Builder) transformRepositoryBase_Layout(creator, builder, target);
        builder = (Repository.Builder) transformIdentifiableBase_Id(creator, builder, target);
        return builder != null ? builder.build() : target;
    }

    protected Repository.Builder transformRepository_Releases(Supplier creator, Repository.Builder builder, Repository target) {
        RepositoryPolicy oldVal = target.getReleases();
        RepositoryPolicy newVal = transformRepositoryPolicy(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).releases(newVal) : builder;
    }
    protected Repository.Builder transformRepository_Snapshots(Supplier creator, Repository.Builder builder, Repository target) {
        RepositoryPolicy oldVal = target.getSnapshots();
        RepositoryPolicy newVal = transformRepositoryPolicy(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).snapshots(newVal) : builder;
    }
    protected Repository.Builder transformRepository_Name(Supplier creator, Repository.Builder builder, Repository target) {
        String oldVal = target.getName();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).name(newVal) : builder;
    }
    protected Repository.Builder transformRepository_Url(Supplier creator, Repository.Builder builder, Repository target) {
        String oldVal = target.getUrl();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).url(newVal) : builder;
    }
    protected Repository.Builder transformRepository_Layout(Supplier creator, Repository.Builder builder, Repository target) {
        String oldVal = target.getLayout();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).layout(newVal) : builder;
    }
    protected Repository.Builder transformRepository_Id(Supplier creator, Repository.Builder builder, Repository target) {
        String oldVal = target.getId();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).id(newVal) : builder;
    }

    protected RepositoryPolicy transformRepositoryPolicy(RepositoryPolicy target) {
        if (target == null) {
            return null;
        }
        Supplier creator = () -> RepositoryPolicy.newBuilder(target);
        RepositoryPolicy.Builder builder = null;
        builder = (RepositoryPolicy.Builder) transformRepositoryPolicy_Enabled(creator, builder, target);
        builder = (RepositoryPolicy.Builder) transformRepositoryPolicy_UpdatePolicy(creator, builder, target);
        builder = (RepositoryPolicy.Builder) transformRepositoryPolicy_ChecksumPolicy(creator, builder, target);
        return builder != null ? builder.build() : target;
    }

    protected RepositoryPolicy.Builder transformRepositoryPolicy_Enabled(Supplier creator, RepositoryPolicy.Builder builder, RepositoryPolicy target) {
        // nothing to do, the transformer only handles strings
        return builder;
    }
    protected RepositoryPolicy.Builder transformRepositoryPolicy_UpdatePolicy(Supplier creator, RepositoryPolicy.Builder builder, RepositoryPolicy target) {
        String oldVal = target.getUpdatePolicy();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).updatePolicy(newVal) : builder;
    }
    protected RepositoryPolicy.Builder transformRepositoryPolicy_ChecksumPolicy(Supplier creator, RepositoryPolicy.Builder builder, RepositoryPolicy target) {
        String oldVal = target.getChecksumPolicy();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).checksumPolicy(newVal) : builder;
    }

    protected ActivationProperty transformActivationProperty(ActivationProperty target) {
        if (target == null) {
            return null;
        }
        Supplier creator = () -> ActivationProperty.newBuilder(target);
        ActivationProperty.Builder builder = null;
        builder = (ActivationProperty.Builder) transformActivationProperty_Name(creator, builder, target);
        builder = (ActivationProperty.Builder) transformActivationProperty_Value(creator, builder, target);
        return builder != null ? builder.build() : target;
    }

    protected ActivationProperty.Builder transformActivationProperty_Name(Supplier creator, ActivationProperty.Builder builder, ActivationProperty target) {
        String oldVal = target.getName();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).name(newVal) : builder;
    }
    protected ActivationProperty.Builder transformActivationProperty_Value(Supplier creator, ActivationProperty.Builder builder, ActivationProperty target) {
        String oldVal = target.getValue();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).value(newVal) : builder;
    }

    protected ActivationOS transformActivationOS(ActivationOS target) {
        if (target == null) {
            return null;
        }
        Supplier creator = () -> ActivationOS.newBuilder(target);
        ActivationOS.Builder builder = null;
        builder = (ActivationOS.Builder) transformActivationOS_Name(creator, builder, target);
        builder = (ActivationOS.Builder) transformActivationOS_Family(creator, builder, target);
        builder = (ActivationOS.Builder) transformActivationOS_Arch(creator, builder, target);
        builder = (ActivationOS.Builder) transformActivationOS_Version(creator, builder, target);
        return builder != null ? builder.build() : target;
    }

    protected ActivationOS.Builder transformActivationOS_Name(Supplier creator, ActivationOS.Builder builder, ActivationOS target) {
        String oldVal = target.getName();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).name(newVal) : builder;
    }
    protected ActivationOS.Builder transformActivationOS_Family(Supplier creator, ActivationOS.Builder builder, ActivationOS target) {
        String oldVal = target.getFamily();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).family(newVal) : builder;
    }
    protected ActivationOS.Builder transformActivationOS_Arch(Supplier creator, ActivationOS.Builder builder, ActivationOS target) {
        String oldVal = target.getArch();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).arch(newVal) : builder;
    }
    protected ActivationOS.Builder transformActivationOS_Version(Supplier creator, ActivationOS.Builder builder, ActivationOS target) {
        String oldVal = target.getVersion();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).version(newVal) : builder;
    }

    protected ActivationFile transformActivationFile(ActivationFile target) {
        if (target == null) {
            return null;
        }
        Supplier creator = () -> ActivationFile.newBuilder(target);
        ActivationFile.Builder builder = null;
        builder = (ActivationFile.Builder) transformActivationFile_Missing(creator, builder, target);
        builder = (ActivationFile.Builder) transformActivationFile_Exists(creator, builder, target);
        return builder != null ? builder.build() : target;
    }

    protected ActivationFile.Builder transformActivationFile_Missing(Supplier creator, ActivationFile.Builder builder, ActivationFile target) {
        String oldVal = target.getMissing();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).missing(newVal) : builder;
    }
    protected ActivationFile.Builder transformActivationFile_Exists(Supplier creator, ActivationFile.Builder builder, ActivationFile target) {
        String oldVal = target.getExists();
        String newVal = transform(oldVal);
        return newVal != oldVal ? (builder != null ? builder : creator.get()).exists(newVal) : builder;
    }

    protected  List transform(List list, Function transformer) {
        List newList = list;
        for (int i = 0; i < list.size(); i++) {
            T oldVal = list.get(i);
            T newVal = transformer.apply(oldVal);
            if (newVal != oldVal) {
                if (newList == list) {
                    newList = new ArrayList<>(list);
                }
                newList.set(i, newVal);
            }
        }
        return newList;
    }

    protected  Map transform(Map map, Function transformer) {
        Map newMap = map;
        for (String key : map.keySet()) {
            T oldVal = map.get(key);
            T newVal = transformer.apply(oldVal);
            if (newVal != oldVal) {
                if (newMap == map) {
                    newMap = new HashMap<>(map);
                }
                newMap.put(key, newVal);
            }
        }
        return newMap;
    }

    protected XmlNode transform(XmlNode node) {
        if (node != null) {
            String oldValue = node.getValue();
            String newValue = transform(oldValue);
            Map oldAttrs = node.getAttributes();
            Map newAttrs = transform(oldAttrs, this::transform);
            List oldChildren = node.getChildren();
            List newChildren = transform(oldChildren, this::transform);
            if (oldValue != newValue || oldAttrs != newAttrs || oldChildren != newChildren) {
                return new XmlNodeImpl(node.getPrefix(), node.getNamespaceUri(), node.getName(),
                        newValue, newAttrs, newChildren, node.getInputLocation());
            }
        }
        return node;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy