Class ComponentManager<T extends AbstractComponent>

java.lang.Object
com.zachsthings.libcomponents.ComponentManager<T>

public abstract class ComponentManager<T extends AbstractComponent> extends Object
A simple manager that keeps track of components and what they should do.
  • Field Details

  • Constructor Details

    • ComponentManager

      public ComponentManager(Logger logger, Class<T> componentCass)
  • Method Details

    • addComponentLoader

      public boolean addComponentLoader(ComponentLoader loader)
    • loadComponents

      public boolean loadComponents() throws InvalidComponentException
      Throws:
      InvalidComponentException
    • setUpComponent

      protected abstract void setUpComponent(T component)
    • isPluginRegistered

      protected abstract boolean isPluginRegistered(String pluginName)
    • isPluginEnabled

      protected abstract boolean isPluginEnabled(String pluginName)
    • handlePluginEnable

      public void handlePluginEnable(String pluginName)
    • enableComponents

      public void enableComponents()
    • unloadComponents

      public void unloadComponents()
    • reloadComponents

      public void reloadComponents()
    • getComponent

      public <C> C getComponent(Class<C> type)
    • getComponents

      public Collection<T> getComponents()
    • getComponent

      public T getComponent(String friendlyName)
    • registerAnnotationHandler

      public <A extends Annotation> void registerAnnotationHandler(Class<A> annotation, AnnotationHandler<A> handler)
    • getAnnotationHandler

      public <A extends Annotation> AnnotationHandler<A> getAnnotationHandler(Class<A> annotation)