Package org.eclipse.net4j.util.container
Class ManagedContainer
- java.lang.Object
-
- org.eclipse.net4j.util.event.Notifier
-
- org.eclipse.net4j.util.lifecycle.Lifecycle
-
- org.eclipse.net4j.util.container.ManagedContainer
-
- All Implemented Interfaces:
IContainer<java.lang.Object>,IManagedContainer,INotifier,INotifier.INotifier2,IDeactivateable,ILifecycle,ILifecycle.DeferrableActivation
public class ManagedContainer extends Lifecycle implements IManagedContainer
A default implementation of amanaged container.- Author:
- Eike Stepper
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.eclipse.net4j.util.container.IContainer
IContainer.Modifiable<E>, IContainer.Persistable<E>, IContainer.Persistence<E>
-
Nested classes/interfaces inherited from interface org.eclipse.net4j.util.lifecycle.ILifecycle
ILifecycle.DeferrableActivation
-
Nested classes/interfaces inherited from interface org.eclipse.net4j.util.container.IManagedContainer
IManagedContainer.ContainerAware
-
Nested classes/interfaces inherited from interface org.eclipse.net4j.util.event.INotifier
INotifier.INotifier2
-
-
Constructor Summary
Constructors Constructor Description ManagedContainer()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidactivateElement(java.lang.Object element)voidaddPostProcessor(IElementProcessor postProcessor)voidaddPostProcessor(IElementProcessor postProcessor, boolean processExistingElements)voidclearElements()protected java.lang.ObjectcreateElement(java.lang.String productGroup, java.lang.String factoryType, java.lang.String description)protected IRegistry<IFactoryKey,IFactory>createFactoryRegistry()protected java.util.List<IElementProcessor>createPostProcessors()protected voiddoActivate()protected voiddoDeactivate()voidfireEvent(IEvent event)<T> voidforEachElement(java.lang.String productGroup, java.lang.Class<T> productType, java.lang.String description, java.util.function.Consumer<T> consumer)<T> voidforEachElement(java.lang.String productGroup, java.lang.Class<T> productType, java.util.function.Consumer<T> consumer)<T> voidforEachElement(java.lang.String productGroup, java.lang.Class<T> productType, java.util.function.Function<java.lang.String,java.lang.String> descriptionProvider, java.util.function.Consumer<T> consumer)java.lang.ObjectgetElement(java.lang.String productGroup, java.lang.String factoryType, java.lang.String description)java.lang.ObjectgetElement(java.lang.String productGroup, java.lang.String factoryType, java.lang.String description, boolean activate)java.lang.String[]getElementKey(java.lang.Object element)<T> TgetElementOrNull(java.lang.String productGroup, java.lang.String factoryType, java.lang.String description)protected java.util.Map.Entry<org.eclipse.net4j.util.container.ManagedContainer.ElementKey,java.lang.Object>[]getElementRegistryEntries()protected org.eclipse.net4j.util.container.ManagedContainer.ElementKey[]getElementRegistryKeys()protected java.lang.Object[]getElementRegistryValues()java.lang.Object[]getElements()java.lang.Object[]getElements(java.lang.String productGroup)java.lang.Object[]getElements(java.lang.String productGroup, java.lang.String factoryType)IFactorygetFactory(java.lang.String productGroup, java.lang.String factoryType)IRegistry<IFactoryKey,IFactory>getFactoryRegistry()java.util.Set<java.lang.String>getFactoryTypes(java.lang.String productGroup)java.lang.StringgetName()Returns the name of this container, ornullif no name has been set.java.util.List<IElementProcessor>getPostProcessors()java.util.Set<java.lang.String>getProductGroups()protected java.lang.StringgetTypeName()booleanisEmpty()voidloadElements(java.io.InputStream stream)protected java.lang.ObjectpostProcessElement(java.lang.String productGroup, java.lang.String factoryType, java.lang.String description, java.lang.Object element)java.lang.ObjectputElement(java.lang.String productGroup, java.lang.String factoryType, java.lang.String description, java.lang.Object element)protected java.lang.ObjectputElement(org.eclipse.net4j.util.container.ManagedContainer.ElementKey key, java.lang.Object element)ManagedContainerregisterFactory(IFactory factory)java.lang.ObjectremoveElement(java.lang.String productGroup, java.lang.String factoryType, java.lang.String description)protected java.lang.ObjectremoveElement(org.eclipse.net4j.util.container.ManagedContainer.ElementKey key)voidremovePostProcessor(IElementProcessor postProcessor)voidsaveElements(java.io.OutputStream stream)voidsetName(java.lang.String name)Sets the name of this container before it is activated.java.lang.StringtoString()-
Methods inherited from class org.eclipse.net4j.util.lifecycle.Lifecycle
activate, checkActive, checkArg, checkArg, checkInactive, checkNull, checkState, checkState, deactivate, deferredActivate, doAfterActivate, doBeforeActivate, doBeforeDeactivate, dump, getLifecycleState, isActive, isDeferredActivation
-
Methods inherited from class org.eclipse.net4j.util.event.Notifier
addListener, addUniqueListener, fireEvent, fireEvent, fireThrowable, firstListenerAdded, getListeners, getNotificationService, hasListener, hasListeners, lastListenerRemoved, listenerAdded, listenerRemoved, removeListener
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.eclipse.net4j.util.lifecycle.ILifecycle
activate, deactivate, getLifecycleState, isActive
-
Methods inherited from interface org.eclipse.net4j.util.event.INotifier
addListener, getListeners, hasListeners, removeListener
-
-
-
-
Method Detail
-
getName
public java.lang.String getName()
Description copied from interface:IManagedContainerReturns the name of this container, ornullif no name has been set.- Specified by:
getNamein interfaceIManagedContainer- Since:
- 3.8
-
setName
public void setName(java.lang.String name)
Description copied from interface:IManagedContainerSets the name of this container before it is activated.- Specified by:
setNamein interfaceIManagedContainer- Since:
- 3.8
-
getFactoryRegistry
public IRegistry<IFactoryKey,IFactory> getFactoryRegistry()
- Specified by:
getFactoryRegistryin interfaceIManagedContainer
-
registerFactory
public ManagedContainer registerFactory(IFactory factory)
- Specified by:
registerFactoryin interfaceIManagedContainer
-
getPostProcessors
public java.util.List<IElementProcessor> getPostProcessors()
- Specified by:
getPostProcessorsin interfaceIManagedContainer
-
addPostProcessor
public void addPostProcessor(IElementProcessor postProcessor, boolean processExistingElements)
- Specified by:
addPostProcessorin interfaceIManagedContainer
-
addPostProcessor
public void addPostProcessor(IElementProcessor postProcessor)
- Specified by:
addPostProcessorin interfaceIManagedContainer
-
removePostProcessor
public void removePostProcessor(IElementProcessor postProcessor)
- Specified by:
removePostProcessorin interfaceIManagedContainer
-
getProductGroups
public java.util.Set<java.lang.String> getProductGroups()
- Specified by:
getProductGroupsin interfaceIManagedContainer
-
getFactoryTypes
public java.util.Set<java.lang.String> getFactoryTypes(java.lang.String productGroup)
- Specified by:
getFactoryTypesin interfaceIManagedContainer
-
getFactory
public IFactory getFactory(java.lang.String productGroup, java.lang.String factoryType) throws FactoryNotFoundException
- Specified by:
getFactoryin interfaceIManagedContainer- Throws:
FactoryNotFoundException
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmptyin interfaceIContainer<java.lang.Object>
-
getElementKey
public java.lang.String[] getElementKey(java.lang.Object element)
- Specified by:
getElementKeyin interfaceIManagedContainer
-
getElements
public java.lang.Object[] getElements()
- Specified by:
getElementsin interfaceIContainer<java.lang.Object>
-
getElements
public java.lang.Object[] getElements(java.lang.String productGroup)
- Specified by:
getElementsin interfaceIManagedContainer
-
getElements
public java.lang.Object[] getElements(java.lang.String productGroup, java.lang.String factoryType)- Specified by:
getElementsin interfaceIManagedContainer
-
getElement
public java.lang.Object getElement(java.lang.String productGroup, java.lang.String factoryType, java.lang.String description) throws FactoryNotFoundException, ProductCreationException- Specified by:
getElementin interfaceIManagedContainer- Throws:
FactoryNotFoundExceptionProductCreationException
-
getElement
public java.lang.Object getElement(java.lang.String productGroup, java.lang.String factoryType, java.lang.String description, boolean activate) throws FactoryNotFoundException, ProductCreationException- Specified by:
getElementin interfaceIManagedContainer- Throws:
FactoryNotFoundExceptionProductCreationException- Since:
- 2.0
-
getElementOrNull
public <T> T getElementOrNull(java.lang.String productGroup, java.lang.String factoryType, java.lang.String description)- Specified by:
getElementOrNullin interfaceIManagedContainer
-
activateElement
protected void activateElement(java.lang.Object element)
- Since:
- 3.2
-
putElement
public java.lang.Object putElement(java.lang.String productGroup, java.lang.String factoryType, java.lang.String description, java.lang.Object element)- Specified by:
putElementin interfaceIManagedContainer
-
putElement
protected java.lang.Object putElement(org.eclipse.net4j.util.container.ManagedContainer.ElementKey key, java.lang.Object element)
-
removeElement
public java.lang.Object removeElement(java.lang.String productGroup, java.lang.String factoryType, java.lang.String description)- Specified by:
removeElementin interfaceIManagedContainer
-
removeElement
protected java.lang.Object removeElement(org.eclipse.net4j.util.container.ManagedContainer.ElementKey key)
-
forEachElement
public <T> void forEachElement(java.lang.String productGroup, java.lang.Class<T> productType, java.util.function.Function<java.lang.String,java.lang.String> descriptionProvider, java.util.function.Consumer<T> consumer)- Specified by:
forEachElementin interfaceIManagedContainer
-
forEachElement
public <T> void forEachElement(java.lang.String productGroup, java.lang.Class<T> productType, java.lang.String description, java.util.function.Consumer<T> consumer)- Specified by:
forEachElementin interfaceIManagedContainer
-
forEachElement
public <T> void forEachElement(java.lang.String productGroup, java.lang.Class<T> productType, java.util.function.Consumer<T> consumer)- Specified by:
forEachElementin interfaceIManagedContainer
-
clearElements
public void clearElements()
- Specified by:
clearElementsin interfaceIManagedContainer
-
loadElements
public void loadElements(java.io.InputStream stream) throws java.io.IOException, FactoryNotFoundException, ProductCreationException- Specified by:
loadElementsin interfaceIManagedContainer- Throws:
java.io.IOExceptionFactoryNotFoundExceptionProductCreationException
-
saveElements
public void saveElements(java.io.OutputStream stream) throws java.io.IOException- Specified by:
saveElementsin interfaceIManagedContainer- Throws:
java.io.IOException
-
getTypeName
protected java.lang.String getTypeName()
- Since:
- 3.8
-
createFactoryRegistry
protected IRegistry<IFactoryKey,IFactory> createFactoryRegistry()
-
createPostProcessors
protected java.util.List<IElementProcessor> createPostProcessors()
-
getElementRegistryKeys
protected org.eclipse.net4j.util.container.ManagedContainer.ElementKey[] getElementRegistryKeys()
- Since:
- 2.0
-
getElementRegistryValues
protected java.lang.Object[] getElementRegistryValues()
- Since:
- 2.0
-
getElementRegistryEntries
protected java.util.Map.Entry<org.eclipse.net4j.util.container.ManagedContainer.ElementKey,java.lang.Object>[] getElementRegistryEntries()
- Since:
- 2.0
-
createElement
protected java.lang.Object createElement(java.lang.String productGroup, java.lang.String factoryType, java.lang.String description) throws FactoryNotFoundException, ProductCreationException
-
postProcessElement
protected java.lang.Object postProcessElement(java.lang.String productGroup, java.lang.String factoryType, java.lang.String description, java.lang.Object element)
-
doActivate
protected void doActivate() throws java.lang.Exception- Overrides:
doActivatein classLifecycle- Throws:
java.lang.Exception
-
doDeactivate
protected void doDeactivate() throws java.lang.Exception- Overrides:
doDeactivatein classLifecycle- Throws:
java.lang.Exception
-
-