1 package org.codehaus.plexus.component.manager;
2
3 import org.codehaus.plexus.MutablePlexusContainer;
4 import org.codehaus.plexus.component.repository.ComponentDescriptor;
5 import org.codehaus.plexus.lifecycle.LifecycleHandler;
6
7 public interface ComponentManagerFactory {
8 /**
9 * Gets the unique identifier of this ComponentManagerFactory. This id is the instantiation strategy specified
10 * in a component descriptor.
11 * @return the unique identifier and instantiation strategy name
12 */
13 String getId();
14
15 /**
16 * Creates a new component manager for the specified component descriptor.
17 * @param container {@link MutablePlexusContainer}.
18 * @param lifecycleHandler {@link LifecycleHandler}.
19 * @param componentDescriptor {@link ComponentDescriptor}
20 * @param role The role.
21 * @param roleHint The hint for the role.
22 * @param <T> The type.
23 * @return {@link ComponentManager}
24 */
25 <T> ComponentManager<T> createComponentManager(
26 MutablePlexusContainer container,
27 LifecycleHandler lifecycleHandler,
28 ComponentDescriptor<T> componentDescriptor,
29 String role,
30 String roleHint);
31 }