package fr.monlouyan.bakefile; import java.util.List; public class BakeEngine { private BakeCLI cli; private BakefileParser parser; private DependencyResolver resolver; private CommandExecutor executor; public BakeEngine(BakeCLI cli) { this.cli = cli; this.parser = new BakefileParser("Bakefile"); this.resolver = new DependencyResolver(); this.executor = new CommandExecutor(cli.isDebug()); } public void run() { List targets = parser.parse(); List targetsToBuild = resolver.resolve(targets, cli.getTargets()); for (Target target : targetsToBuild) { executor.execute(target); } } }