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

org.apache.maven.model.v4.MavenModelVersion Maven / Gradle / Ivy

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

import java.io.ObjectStreamException;
import java.nio.file.Path;
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.function.BinaryOperator;
import java.util.function.Function;
import java.util.stream.Collectors;

import org.apache.maven.api.annotations.Generated;
import org.apache.maven.api.xml.XmlNode;
import org.apache.maven.api.model.Model;
import org.apache.maven.api.model.ModelBase;
import org.apache.maven.api.model.PluginContainer;
import org.apache.maven.api.model.PluginConfiguration;
import org.apache.maven.api.model.BuildBase;
import org.apache.maven.api.model.Build;
import org.apache.maven.api.model.CiManagement;
import org.apache.maven.api.model.Notifier;
import org.apache.maven.api.model.Contributor;
import org.apache.maven.api.model.Dependency;
import org.apache.maven.api.model.Developer;
import org.apache.maven.api.model.Exclusion;
import org.apache.maven.api.model.IssueManagement;
import org.apache.maven.api.model.DistributionManagement;
import org.apache.maven.api.model.License;
import org.apache.maven.api.model.MailingList;
import org.apache.maven.api.model.Organization;
import org.apache.maven.api.model.PatternSet;
import org.apache.maven.api.model.Parent;
import org.apache.maven.api.model.Scm;
import org.apache.maven.api.model.FileSet;
import org.apache.maven.api.model.Resource;
import org.apache.maven.api.model.RepositoryBase;
import org.apache.maven.api.model.Repository;
import org.apache.maven.api.model.DeploymentRepository;
import org.apache.maven.api.model.RepositoryPolicy;
import org.apache.maven.api.model.Site;
import org.apache.maven.api.model.ConfigurationContainer;
import org.apache.maven.api.model.Plugin;
import org.apache.maven.api.model.PluginExecution;
import org.apache.maven.api.model.DependencyManagement;
import org.apache.maven.api.model.PluginManagement;
import org.apache.maven.api.model.Reporting;
import org.apache.maven.api.model.Profile;
import org.apache.maven.api.model.Activation;
import org.apache.maven.api.model.ActivationProperty;
import org.apache.maven.api.model.ActivationOS;
import org.apache.maven.api.model.ActivationFile;
import org.apache.maven.api.model.ReportPlugin;
import org.apache.maven.api.model.ReportSet;
import org.apache.maven.api.model.Prerequisites;
import org.apache.maven.api.model.Relocation;
import org.apache.maven.api.model.Extension;
import org.apache.maven.api.model.InputLocation;
import org.apache.maven.api.model.InputSource;

@Generated
public class MavenModelVersion {

    public String getModelVersion(Model model) {
        Objects.requireNonNull(model, "model cannot be null");

        // 4.1.0
        if (is_4_1_0(model)) {
            return "4.1.0";
        }
        return "4.0.0";
    }

    private boolean is_4_1_0(Plugin plugin) {
        return plugin != null && (
               plugin.getExecutions().stream().anyMatch(this::is_4_1_0) // Plugin : executions
        );
    }
    private boolean is_4_1_0(Model model) {
        return model != null && (
               has(model.isRoot()) // Model : root
            || has(model.isPreserveModelVersion()) // Model : preserveModelVersion
            || is_4_1_0(model.getBuild()) // Model : build
            || model.getProfiles().stream().anyMatch(this::is_4_1_0) // Model : profiles
        );
    }
    private boolean is_4_1_0(PluginConfiguration pluginConfiguration) {
        return pluginConfiguration != null && (
               is_4_1_0((PluginContainer) pluginConfiguration)
            || is_4_1_0(pluginConfiguration.getPluginManagement()) // PluginConfiguration : pluginManagement
        );
    }
    private boolean is_4_1_0(Profile profile) {
        return profile != null && (
               is_4_1_0(profile.getBuild()) // Profile : build
        );
    }
    private boolean is_4_1_0(PluginExecution pluginExecution) {
        return pluginExecution != null && (
               has(pluginExecution.getPriority()) // PluginExecution : priority
        );
    }
    private boolean is_4_1_0(Extension extension) {
        return extension != null && (
               has(extension.getConfiguration()) // Extension : configuration
        );
    }
    private boolean is_4_1_0(PluginContainer pluginContainer) {
        return pluginContainer != null && (
               pluginContainer.getPlugins().stream().anyMatch(this::is_4_1_0) // PluginContainer : plugins
        );
    }
    private boolean is_4_1_0(PluginManagement pluginManagement) {
        return pluginManagement != null && (
               is_4_1_0((PluginContainer) pluginManagement)
        );
    }
    private boolean is_4_1_0(Build build) {
        return build != null && (
               is_4_1_0((BuildBase) build)
            || build.getExtensions().stream().anyMatch(this::is_4_1_0) // Build : extensions
        );
    }
    private boolean is_4_1_0(BuildBase buildBase) {
        return buildBase != null && (
               is_4_1_0((PluginConfiguration) buildBase)
        );
    }

    private boolean has(String str) {
        return str != null;
    }

    private boolean has(Path path) {
        return path != null;
    }

    private boolean has(boolean bool) {
        return bool;
    }

    private boolean has(int val) {
        return val != 0;
    }

    private boolean has(List list) {
        return !list.isEmpty();
    }

    private boolean has(XmlNode node) {
        return node != null;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy