package com.hubspot.blazar.base.visitor;
import com.hubspot.blazar.base.ModuleBuild;
public abstract class AbstractModuleBuildVisitor implements ModuleBuildVisitor {
@Override
public final void visit(ModuleBuild build) throws Exception {
switch (build.getState()) {
case QUEUED:
visitQueued(build);
break;
case WAITING_FOR_UPSTREAM_BUILD:
visitWaitingForUpstreamBuild(build);
break;
case LAUNCHING:
visitLaunching(build);
break;
case IN_PROGRESS:
visitInProgress(build);
break;
case SUCCEEDED:
visitSucceeded(build);
break;
case CANCELLED:
visitCancelled(build);
break;
case FAILED:
visitFailed(build);
break;
case SKIPPED:
visitSkipped(build);
break;
default:
throw new IllegalStateException("Unexpected build state: " + build.getState());
}
}
protected void visitQueued(ModuleBuild build) throws Exception {}
protected void visitWaitingForUpstreamBuild(ModuleBuild build) throws Exception {}
protected void visitLaunching(ModuleBuild build) throws Exception {}
protected void visitInProgress(ModuleBuild build) throws Exception {}
protected void visitSucceeded(ModuleBuild build) throws Exception {}
protected void visitCancelled(ModuleBuild build) throws Exception {}
protected void visitFailed(ModuleBuild build) throws Exception {}
protected void visitSkipped(ModuleBuild build) throws Exception {}
}