![JAR search and dependency download from the Maven repository](/logo.png)
org.apache.maven.toolchain.v4.MavenToolchainsTransformer Maven / Gradle / Ivy
// =================== DO NOT EDIT THIS FILE ====================
// Generated by Modello Velocity from transformer.vm
// template, any modifications will be overwritten.
// ==============================================================
package org.apache.maven.toolchain.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.toolchain.TrackableBase;
import org.apache.maven.api.toolchain.PersistedToolchains;
import org.apache.maven.api.toolchain.ToolchainModel;
import org.apache.maven.api.toolchain.InputLocation;
import org.apache.maven.api.toolchain.InputSource;
import org.apache.maven.internal.xml.XmlNodeImpl;
@Generated
public class MavenToolchainsTransformer {
private final Function transformer;
public MavenToolchainsTransformer(Function transformer) {
this.transformer = transformer;
}
/**
* Transforms the given model
*/
public PersistedToolchains visit(PersistedToolchains target) {
Objects.requireNonNull(target, "target cannot be null");
return transformPersistedToolchains(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 PersistedToolchains transformPersistedToolchains(PersistedToolchains target) {
if (target == null) {
return null;
}
Supplier creator = () -> PersistedToolchains.newBuilder(target);
PersistedToolchains.Builder builder = null;
builder = (PersistedToolchains.Builder) transformPersistedToolchains_Toolchains(creator, builder, target);
return builder != null ? builder.build() : target;
}
protected PersistedToolchains.Builder transformPersistedToolchains_Toolchains(Supplier extends PersistedToolchains.Builder> creator, PersistedToolchains.Builder builder, PersistedToolchains target) {
List oldVal = target.getToolchains();
List newVal = transform(oldVal, this::transformToolchainModel);
return newVal != oldVal ? (builder != null ? builder : creator.get()).toolchains(newVal) : builder;
}
protected ToolchainModel transformToolchainModel(ToolchainModel target) {
if (target == null) {
return null;
}
Supplier creator = () -> ToolchainModel.newBuilder(target);
ToolchainModel.Builder builder = null;
builder = (ToolchainModel.Builder) transformToolchainModel_Type(creator, builder, target);
builder = (ToolchainModel.Builder) transformToolchainModel_Provides(creator, builder, target);
builder = (ToolchainModel.Builder) transformToolchainModel_Configuration(creator, builder, target);
return builder != null ? builder.build() : target;
}
protected ToolchainModel.Builder transformToolchainModel_Type(Supplier extends ToolchainModel.Builder> creator, ToolchainModel.Builder builder, ToolchainModel target) {
String oldVal = target.getType();
String newVal = transform(oldVal);
return newVal != oldVal ? (builder != null ? builder : creator.get()).type(newVal) : builder;
}
protected ToolchainModel.Builder transformToolchainModel_Provides(Supplier extends ToolchainModel.Builder> creator, ToolchainModel.Builder builder, ToolchainModel target) {
Map props = target.getProvides();
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.provides(newProps);
}
newProps.put(entry.getKey(), newVal);
}
}
return builder;
}
protected ToolchainModel.Builder transformToolchainModel_Configuration(Supplier extends ToolchainModel.Builder> creator, ToolchainModel.Builder builder, ToolchainModel target) {
XmlNode oldVal = target.getConfiguration();
XmlNode newVal = transform(oldVal);
return newVal != oldVal ? (builder != null ? builder : creator.get()).configuration(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