package org.implab.gradle.variants.sources;

import org.gradle.api.NamedDomainObjectProvider;
import org.implab.gradle.common.sources.GenericSourceSet;

/**
 * Materializes symbolic source set names into actual GenericSourceSet
 * instances.
 */
public interface SourceSetMaterializer {
    /**
     * Returns a lazy provider for the source set corresponding to the compile unit.
     *
     * The provider is stable and cached per compile unit.
     */
    NamedDomainObjectProvider<GenericSourceSet> getSourceSet(CompileUnit unit);
}