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

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

package name.remal.gradle_plugins.dsl;

import org.jetbrains.annotations.NotNull;
import java.util.LinkedHashSet;
import java.util.Objects;
import java.util.Set;

import static java.util.Arrays.asList;
import static java.util.Collections.emptySet;
import static java.util.Collections.unmodifiableSet;

public class PluginId {

    @NotNull
    private final String id;

    @NotNull
    private final Set<@NotNull String> alternateIds;

    public PluginId(@NotNull String id, @NotNull Set<@NotNull String> alternateIds) {
        this.id = id;
        this.alternateIds = unmodifiableSet(new LinkedHashSet<>(alternateIds));
    }

    public PluginId(@NotNull String id, @NotNull String... alternateIds) {
        this.id = id;
        this.alternateIds = unmodifiableSet(new LinkedHashSet<>(asList(alternateIds)));
    }

    public PluginId(@NotNull String id) {
        this(id, emptySet());
    }

    @NotNull
    public final String getId() {
        return id;
    }

    @NotNull
    public final Set<@NotNull String> getAlternateIds() {
        return alternateIds;
    }

    @Override
    public final boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof PluginId)) return false;
        PluginId pluginId = (PluginId) o;
        return Objects.equals(id, pluginId.id) && Objects.equals(alternateIds, pluginId.alternateIds);
    }

    @Override
    public final int hashCode() {
        return Objects.hash(id, alternateIds);
    }

    @Override
    public final String toString() {
        return this.getClass().getSimpleName() + "{"
            + "id=" + id
            + ", alternateIds=" + alternateIds
            + '}';
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy