package fr.monlouyan.bakefile; import java.util.HashMap; import java.util.List; import java.util.Map; public class BakeEngine { private BakefileParser parser; private DependencyResolver resolver; private CommandExecutor executor; private static Map ruleMap; public BakeEngine() { this.parser = new BakefileParser("Bakefile"); this.resolver = new DependencyResolver(BakeCLI.isDebug()); ruleMap = new HashMap<>(); } public static boolean hasRule(String target) { // Vérifie si une règle existe pour créer cette cible return ruleMap.containsKey(target); } public void run() { List rules = parser.parse(); for (Rule rule : rules) { ruleMap.put(rule.getName(), rule); } List rulesToBuild = resolver.resolve(rules, BakeCLI.getTargets()); this.executor = new CommandExecutor(BakeCLI.isDebug(), resolver.isCircular()); for (Rule rule : rulesToBuild) { executor.execute(rule); } } }