class ReactorBuildStatus {
    private final ProjectDependencyGraph projectDependencyGraph;

    private final Collection<String> blackListedProjects = Collections.synchronizedSet(new HashSet<>());

    private volatile boolean halted = false;

    public ReactorBuildStatus(ProjectDependencyGraph projectDependencyGraph) {
        this.projectDependencyGraph = projectDependencyGraph;
    }

    public boolean isBlackListed(MavenProject project) {
        return blackListedProjects.contains(BuilderCommon.getKey(project));
    }

    public void blackList(MavenProject project) {<FILL_FUNCTION_BODY>}

    public void halt() {
        halted = true;
    }

    public boolean isHalted() {
        return halted;
    }

    public boolean isHaltedOrBlacklisted(MavenProject mavenProject) {
        return isBlackListed(mavenProject) || isHalted();
    }
}

        if (blackListedProjects.add(BuilderCommon.getKey(project)) && projectDependencyGraph != null) {
            for (MavenProject downstreamProject : projectDependencyGraph.getDownstreamProjects(project, true)) {
                blackListedProjects.add(BuilderCommon.getKey(downstreamProject));
            }
        }
    
<no_super_class>