Package com.zachsthings.libcomponents
Class ComponentManager<T extends AbstractComponent>
java.lang.Object
com.zachsthings.libcomponents.ComponentManager<T>
A simple manager that keeps track of components and what they should do.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Map<Class<? extends Annotation>,AnnotationHandler<Annotation>>protected List<ComponentLoader>protected Logger -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanaddComponentLoader(ComponentLoader loader)void<A extends Annotation>
AnnotationHandler<A>getAnnotationHandler(Class<A> annotation)<C> CgetComponent(Class<C> type)getComponent(String friendlyName)voidhandlePluginEnable(String pluginName)protected abstract booleanisPluginEnabled(String pluginName)protected abstract booleanisPluginRegistered(String pluginName)boolean<A extends Annotation>
voidregisterAnnotationHandler(Class<A> annotation, AnnotationHandler<A> handler)voidprotected abstract voidsetUpComponent(T component)void
-
Field Details
-
logger
-
componentClass
-
loaders
-
annotationHandlers
-
registeredComponentsByName
protected final Map<String,com.zachsthings.libcomponents.ComponentRegistrationState<T extends AbstractComponent>> registeredComponentsByName -
registeredComponentsByClass
protected final Map<Class<?>,com.zachsthings.libcomponents.ComponentRegistrationState<T extends AbstractComponent>> registeredComponentsByClass -
registeredComponents
protected final List<com.zachsthings.libcomponents.ComponentRegistrationState<T extends AbstractComponent>> registeredComponents -
requiredPlugins
-
-
Constructor Details
-
ComponentManager
-
-
Method Details
-
addComponentLoader
-
loadComponents
- Throws:
InvalidComponentException
-
setUpComponent
-
isPluginRegistered
-
isPluginEnabled
-
handlePluginEnable
-
enableComponents
public void enableComponents() -
unloadComponents
public void unloadComponents() -
reloadComponents
public void reloadComponents() -
getComponent
-
getComponents
-
getComponent
-
registerAnnotationHandler
public <A extends Annotation> void registerAnnotationHandler(Class<A> annotation, AnnotationHandler<A> handler) -
getAnnotationHandler
-