package org.togglz.core.bootstrap; import org.togglz.core.manager.FeatureManager; import org.togglz.core.manager.FeatureManagerBuilder; import org.togglz.core.manager.TogglzConfig; /** * <p> * Implementations of this interface are looked up by Togglz during the bootstrapping process and used to create the * FeatureManager for the application. The automatic bootstrapping is the default behavior for web applications. * </p> * * <p> * Users can choose whether they want to implement {@link TogglzBootstrap} or {@link TogglzConfig} for configuring Togglz. The * advantage of {@link TogglzBootstrap} is that it offers more control than {@link TogglzConfig} while {@link TogglzConfig} is * easier to use but doesn't allow to configure all the aspects of the {@link FeatureManager}. * </p> * * @see FeatureManagerBootstrapper * @see TogglzConfig * * @author Christian Kaltepoth * */ public interface TogglzBootstrap { /** * Create the {@link FeatureManager} for the application. Implementations typially use {@link FeatureManagerBuilder} which * offers a fluent API for configuring all the aspects of Togglz. * * @return The new {@link FeatureManager}, never <code>null</code>. */ FeatureManager createFeatureManager(); }