package org.implab.gradle.variants.artifacts;

import org.gradle.api.NamedDomainObjectContainer;
import org.gradle.api.NamedDomainObjectProvider;
import org.gradle.api.artifacts.Configuration;
import org.implab.gradle.variants.core.Variant;

/** Описывает конфигурация варианта исходящей конфигурации */
public interface VariantArtifactsConfiguration {
    /**
     * Исходный вариант для которого строится Outgoing конфигурация
     */
    Variant getVariant();

    /**
     * Провайдер зарегистрированной конфигурации
     */
    NamedDomainObjectProvider<Configuration> getOutgoingConfiguration();

    /**
     * Слоты конфигурации, данная коллекция живая, используется для
     * получения информации об объявленных слотах, но эти слоты не
     * обязаны быть сконфигурированы, т.е. это только Identity.
     *
     * @see {@link ArtifactSlot}
     */
    NamedDomainObjectContainer<Slot> getSlots();
}
