/**
*
*/
package org.archive.wayback.accesscontrol;
import org.archive.wayback.resourceindex.filters.ExclusionFilter;
/**
* Extended {@link ExclusionFilterFactory} interface for configuring
* {@link ExclusionFilter} instance depending on context information.
* <p>
* If an {@code ExclusionFilterFactory} instance also implements this interface,
* and if appropriate {@code ExclusionContext} is available, caller shall
* {@link #getExclusionFilter(CollectionContext)} method instead of
* {@link ExclusionFilterFactory#get()}. This is for migrating to new interface
* maintaining compatibility with existing code. Eventually all
* {@code ExclusionFilterFactory} implementation should migrate to this
* interface.
* </p>
* <p>
* Typically context corresponds to one of web archive collection hosted by the
* same Wayback instance.
* </p>
*/
public interface ContextExclusionFilterFactory extends ExclusionFilterFactory {
/**
* Return {@link ExclusionFilter} for use in current replay session, based
* on {@code context}.
* @param context exclusion context view, must not be {@code null}.
* @return ExclusionFilter for current replay session.
*/
public ExclusionFilter getExclusionFilter(CollectionContext context);
}