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

name.remal.gradle_plugins.dsl.EnvironmentVariableInfo Maven / Gradle / Ivy

There is a newer version: 1.9.2
Show newest version
package name.remal.gradle_plugins.dsl;

import java.util.Objects;
import org.gradle.api.Project;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public interface EnvironmentVariableInfo {

    @NotNull
    String getVariableName();

    @NotNull
    String getDescription();

    @Nullable
    default String getPluginId() {
        return null;
    }

    @Nullable
    default Class> getPluginClass() {
        return null;
    }

    @Nullable
    default String getScope() {
        return null;
    }

    @Nullable
    default Class getConditionClass() {
        return null;
    }


    @NotNull
    default EnvironmentVariableInfo withPluginId(@Nullable String pluginId) {
        String normalizedPluginId = pluginId != null && !pluginId.isEmpty() ? pluginId : null;
        if (Objects.equals(getPluginId(), normalizedPluginId)) return this;
        EnvironmentVariableInfo self = this;
        return new EnvironmentVariableInfo() {
            @Override
            @NotNull
            public String getVariableName() {
                return self.getVariableName();
            }

            @Override
            @NotNull
            public String getDescription() {
                return self.getDescription();
            }

            @Override
            @Nullable
            public String getPluginId() {
                return normalizedPluginId;
            }

            @Override
            @Nullable
            public Class> getPluginClass() {
                return self.getPluginClass();
            }

            @Override
            @Nullable
            public String getScope() {
                return self.getScope();
            }

            @Override
            @Nullable
            public Class getConditionClass() {
                return self.getConditionClass();
            }
        };
    }

    @NotNull
    default EnvironmentVariableInfo withPluginClass(@Nullable Class> pluginClass) {
        Class> normalizedPluginClass = NotDefinedProjectPlugin.class != pluginClass ? pluginClass : null;
        if (Objects.equals(getPluginClass(), normalizedPluginClass)) return this;
        EnvironmentVariableInfo self = this;
        return new EnvironmentVariableInfo() {
            @Override
            @NotNull
            public String getVariableName() {
                return self.getVariableName();
            }

            @Override
            @NotNull
            public String getDescription() {
                return self.getDescription();
            }

            @Override
            @Nullable
            public String getPluginId() {
                return self.getPluginId();
            }

            @Override
            @Nullable
            public Class> getPluginClass() {
                return normalizedPluginClass;
            }

            @Override
            @Nullable
            public String getScope() {
                return self.getScope();
            }

            @Override
            @Nullable
            public Class getConditionClass() {
                return self.getConditionClass();
            }
        };
    }

    @NotNull
    default EnvironmentVariableInfo withScope(@Nullable String scope) {
        String normalizedScope = scope != null && !scope.isEmpty() ? scope : null;
        if (Objects.equals(getScope(), normalizedScope)) return this;
        EnvironmentVariableInfo self = this;
        return new EnvironmentVariableInfo() {
            @Override
            @NotNull
            public String getVariableName() {
                return self.getVariableName();
            }

            @Override
            @NotNull
            public String getDescription() {
                return self.getDescription();
            }

            @Override
            @Nullable
            public String getPluginId() {
                return self.getPluginId();
            }

            @Override
            @Nullable
            public Class> getPluginClass() {
                return self.getPluginClass();
            }

            @Override
            @Nullable
            public String getScope() {
                return normalizedScope;
            }

            @Override
            @Nullable
            public Class getConditionClass() {
                return self.getConditionClass();
            }
        };
    }

    @NotNull
    default EnvironmentVariableInfo withConditionClass(@Nullable Class conditionClass) {
        Class normalizedConditionClass = NotDefinedEnvironmentVariableCondition.class != conditionClass ? conditionClass : null;
        if (Objects.equals(getConditionClass(), normalizedConditionClass)) return this;
        EnvironmentVariableInfo self = this;
        return new EnvironmentVariableInfo() {
            @Override
            @NotNull
            public String getVariableName() {
                return self.getVariableName();
            }

            @Override
            @NotNull
            public String getDescription() {
                return self.getDescription();
            }

            @Override
            @Nullable
            public String getPluginId() {
                return self.getPluginId();
            }

            @Override
            @Nullable
            public Class> getPluginClass() {
                return self.getPluginClass();
            }

            @Override
            @Nullable
            public String getScope() {
                return self.getScope();
            }

            @Override
            @Nullable
            public Class getConditionClass() {
                return normalizedConditionClass;
            }
        };
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy