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(BakeCLI.isDebug()); this.executor = new CommandExecutor(BakeCLI.isDebug()); } public void run() { List rules = parser.parse(); List rulesToBuild = resolver.resolve(rules, cli.getTargets()); for (Rule rule : rulesToBuild) { executor.execute(rule); } } }