package de.skuzzle.polly.core.moduleloader; import java.io.File; import java.io.IOException; public interface ModuleLoader { public void exportToDot(File output) throws IOException; public abstract void willSetState(int state, Provider provider); public abstract void requireState(int state, Provider provider); public abstract boolean isStateSet(int state); public abstract void addState(int state); public abstract <T> void willProvideDuringSetup(Class<T> component, Provider provider); public abstract <T> void requireBeforeSetup(Class<?> component, Provider provider); public abstract void provideComponentAs(Class<?> type, Object component); public abstract void provideComponent(Object component); public abstract <T> T requireNow(Class<T> component); public abstract void registerModule(Provider provider); public abstract void runSetup() throws SetupException; public abstract void runModules() throws Exception; public abstract void dispose(); boolean checkRequires(Class<?> component, Provider provider); }