package hudson.model;
import hudson.tasks.BuildWrapper;
import hudson.util.DescribableList;
/**
* {@link AbstractProject} that has associated {@link BuildWrapper}s.
*
* @author Kohsuke Kawaguchi
* @since 1.335
*/
public interface BuildableItemWithBuildWrappers extends BuildableItem {
/**
* {@link BuildableItemWithBuildWrappers} needs to be an instance of
* {@link AbstractProject}.
*
* <p>
* This method must be always implemented as {@code (AbstractProject)this}, but
* defining this method emphasizes the fact that this cast must be doable.
*/
AbstractProject<?,?> asProject();
/**
* {@link BuildWrapper}s associated with this {@link AbstractProject}.
*
* @return
* can be empty but never null. This list is live, and changes to it will be reflected
* to the project configuration.
*/
DescribableList<BuildWrapper,Descriptor<BuildWrapper>> getBuildWrappersList();
}