package org.smoothbuild.task.exec; import java.util.Set; import javax.inject.Inject; import org.smoothbuild.cli.Console; import org.smoothbuild.lang.function.Functions; import org.smoothbuild.lang.function.base.Function; import org.smoothbuild.lang.function.base.Name; public class SmoothExecutor { private final Functions functions; private final ArtifactBuilder artifactBuilder; private final Console console; @Inject public SmoothExecutor(Functions functions, ArtifactBuilder artifactBuilder, Console console) { this.functions = functions; this.artifactBuilder = artifactBuilder; this.console = console; } public void execute(Set<Name> names) { for (Name name : names) { Function function = functions.get(name); if (function == null) { console.error("Unknown function " + name + "."); throw new ExecutionException(); } artifactBuilder.addArtifact(function); } artifactBuilder.runBuild(); } }