Class Registry<ELEMENT,​OBSERVER extends ECPObserver>

  • Type Parameters:
    ELEMENT -
    OBSERVER -
    All Implemented Interfaces:
    ECPDisposable.DisposeListener, org.eclipse.net4j.util.event.INotifier, org.eclipse.net4j.util.event.INotifier.INotifier2, org.eclipse.net4j.util.lifecycle.IDeactivateable, org.eclipse.net4j.util.lifecycle.ILifecycle, org.eclipse.net4j.util.lifecycle.ILifecycle.DeferrableActivation
    Direct Known Subclasses:
    ElementRegistry, Properties

    public abstract class Registry<ELEMENT,​OBSERVER extends ECPObserver>
    extends org.eclipse.net4j.util.lifecycle.Lifecycle
    implements ECPDisposable.DisposeListener
    Author:
    Eike Stepper
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface org.eclipse.net4j.util.lifecycle.ILifecycle

        org.eclipse.net4j.util.lifecycle.ILifecycle.DeferrableActivation
      • Nested classes/interfaces inherited from interface org.eclipse.net4j.util.event.INotifier

        org.eclipse.net4j.util.event.INotifier.INotifier2
    • Field Summary

      • Fields inherited from class org.eclipse.net4j.util.lifecycle.Lifecycle

        USE_LABEL
    • Constructor Summary

      Constructors 
      Constructor Description
      Registry()
      Default constructor.
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void addObserver​(OBSERVER observer)
      Adds an ECPObserver to the ECPObserverBus.
      void changeElements​(java.util.Set<java.lang.String> remove, java.util.Set<ELEMENT> add)
      Adds or remove elements contained in the registry.
      void disposed​(ECPDisposable disposable)
      Callback method being used to notify listeners about a dispose.
      protected java.util.Set<ELEMENT> doChangeElements​(java.util.Set<java.lang.String> remove, java.util.Set<ELEMENT> add)
      Executes adding or removing elements contained in the registry.
      protected void elementsChanged​(java.util.Collection<ELEMENT> oldElements, java.util.Collection<ELEMENT> newElements)  
      ELEMENT getElement​(java.lang.String key)
      Retrieves an element with a certain name from the registry.
      int getElementCount()
      Returns the number of elements managed by the registry.
      protected abstract java.lang.String getElementName​(ELEMENT element)  
      java.util.Set<java.lang.String> getElementNames()
      Returns the names of the elements managed by the registry.
      java.util.Collection<ELEMENT> getElements()
      Returns the list of elements managed by the registry.
      boolean hasElement​(java.lang.String name)
      Checks if an element with a certain name is managed by the registry.
      boolean hasElements()
      Returns if the registry has elements.
      protected static boolean isDisposingElement()  
      protected boolean isRemoveDisposedElements()  
      protected abstract void notifyObservers​(java.util.Collection<ELEMENT> oldArray, java.util.Collection<ELEMENT> newArray)
      Notifies observers that the elements in the registry have changed.
      void removeObserver​(OBSERVER observer)
      Removes an ECPObserver to the ECPObserverBus.
      • Methods inherited from class org.eclipse.net4j.util.lifecycle.Lifecycle

        activate, checkActive, checkArg, checkArg, checkInactive, checkNull, checkState, checkState, deactivate, deferredActivate, doActivate, doAfterActivate, doBeforeActivate, doBeforeDeactivate, doDeactivate, dump, getLifecycleState, isActive, isDeferredActivation, toString
      • Methods inherited from class org.eclipse.net4j.util.event.Notifier

        addListener, addUniqueListener, fireEvent, 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.event.INotifier

        addListener, getListeners, hasListeners, removeListener
    • Constructor Detail

      • Registry

        public Registry()
        Default constructor.
    • Method Detail

      • getElement

        public final ELEMENT getElement​(java.lang.String key)
        Retrieves an element with a certain name from the registry.
        Parameters:
        key - the name of the element to retrieve
        Returns:
        the element or null if not contained in the registry
      • getElementNames

        public final java.util.Set<java.lang.String> getElementNames()
        Returns the names of the elements managed by the registry.
        Returns:
        a set of strings representing the names of elements
      • getElementCount

        public final int getElementCount()
        Returns the number of elements managed by the registry.
        Returns:
        an integer
      • getElements

        public final java.util.Collection<ELEMENT> getElements()
        Returns the list of elements managed by the registry.
        Returns:
        a collection of elements
      • hasElements

        public final boolean hasElements()
        Returns if the registry has elements.
        Returns:
        true if the registry has elements
      • hasElement

        public final boolean hasElement​(java.lang.String name)
        Checks if an element with a certain name is managed by the registry.
        Parameters:
        name - the name of the element to check
        Returns:
        true if the element is managed by the registry
      • changeElements

        public final void changeElements​(java.util.Set<java.lang.String> remove,
                                         java.util.Set<ELEMENT> add)
        Adds or remove elements contained in the registry.
        Parameters:
        remove - a set of elements to be removed
        add - a set of elements to be added
      • disposed

        public final void disposed​(ECPDisposable disposable)
        Callback method being used to notify listeners about a dispose.
        Specified by:
        disposed in interface ECPDisposable.DisposeListener
        Parameters:
        disposable - the object being disposed
      • isRemoveDisposedElements

        protected boolean isRemoveDisposedElements()
        Returns:
        Whether elements should be removed from the registry if they are disposed.
      • doChangeElements

        protected final java.util.Set<ELEMENT> doChangeElements​(java.util.Set<java.lang.String> remove,
                                                                java.util.Set<ELEMENT> add)
        Executes adding or removing elements contained in the registry. As a caller, use changeElements().
        Parameters:
        remove - a set of elements to be removed
        add - a set of elements to be added
        Returns:
        a set of elements, which have been removed
      • notifyObservers

        protected abstract void notifyObservers​(java.util.Collection<ELEMENT> oldArray,
                                                java.util.Collection<ELEMENT> newArray)
                                         throws java.lang.Exception
        Notifies observers that the elements in the registry have changed.
        Parameters:
        oldArray - The old collection of elements
        newArray - The new collection of elements
        Throws:
        java.lang.Exception
      • elementsChanged

        protected void elementsChanged​(java.util.Collection<ELEMENT> oldElements,
                                       java.util.Collection<ELEMENT> newElements)
      • getElementName

        protected abstract java.lang.String getElementName​(ELEMENT element)
        Parameters:
        element - the element to retrieve a name for.
        Returns:
        the name of an element
      • isDisposingElement

        protected static boolean isDisposingElement()