package hudson.model;
import hudson.ExtensionList;
import hudson.ExtensionPoint;
import hudson.tasks.BuildStep;
/**
* Receives events that happen as a build executes {@link BuildStep}s.
* @author <a href="mailto:nicolas.deloof@gmail.com">Nicolas De Loof</a>
* @since 1.502
*/
public abstract class BuildStepListener implements ExtensionPoint {
/**
* Called when a buildStep is performed.
*/
public abstract void started(AbstractBuild build, BuildStep bs, BuildListener listener);
/**
* Called when a buildStep has completed.
*/
public abstract void finished(AbstractBuild build, BuildStep bs, BuildListener listener, boolean canContinue);
/**
* Returns all the registered {@link BuildStepListener}s.
*/
public static ExtensionList<BuildStepListener> all() {
// TODO should have a null-safe version when Jenkins.getInstance() is null; would require changes in ExtensionList
return ExtensionList.lookup(BuildStepListener.class);
}
}