Class DefaultSubclassRegistry

  • All Implemented Interfaces:
    SubclassRegistry, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware

    public class DefaultSubclassRegistry
    extends java.lang.Object
    implements SubclassRegistry, org.springframework.context.ApplicationContextAware
    Default implementation of SubclassRegistry
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void buildSubclassesMap​(org.springframework.context.ApplicationContext applicationContext)
      Builds the subclasses map based on all the managed beans of type SubclassMapping.
      protected void createSubclassesSet​(java.lang.Class parentClass, java.util.Set<java.lang.Class> allSubclasses)  
      java.util.Set<java.lang.Class> getAllSubclasses​(java.lang.Class parentClass)
      Method returns information about all subclasses (not only direct) for given parent class
      java.util.Set<java.lang.Class> getSubclasses​(java.lang.Class parentClass)
      Method returns information about direct subclasses for given parent class
      void init()  
      void registerSubclass​(java.lang.Class parentClass, java.lang.Class subclass)
      Register direct subclass for given parent class
      void registerSubclasses​(java.lang.Class parentClass, java.util.Set<java.lang.Class> subclasses)
      Method register whole set of subclasses for given class
      void setApplicationContext​(org.springframework.context.ApplicationContext applicationContext)
      void unregisterSubclass​(java.lang.Class parentClass, java.lang.Class subclass)
      Unregister direct subclass for given parent class
      void unregisterSubclasses​(java.lang.Class parentClass)
      Unregister all direct subclasses for given parent class
      void unregisterSubclasses​(java.lang.Class parentClass, java.util.Set<java.lang.Class> subclasses)
      Unregister direct subclasses for given parent class
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • DefaultSubclassRegistry

        public DefaultSubclassRegistry()
    • Method Detail

      • setApplicationContext

        public void setApplicationContext​(org.springframework.context.ApplicationContext applicationContext)
        Specified by:
        setApplicationContext in interface org.springframework.context.ApplicationContextAware
      • init

        public void init()
      • buildSubclassesMap

        protected void buildSubclassesMap​(org.springframework.context.ApplicationContext applicationContext)
        Builds the subclasses map based on all the managed beans of type SubclassMapping.
        Parameters:
        applicationContext - The application context to look for managed beans in.
      • getSubclasses

        public java.util.Set<java.lang.Class> getSubclasses​(java.lang.Class parentClass)
        Method returns information about direct subclasses for given parent class
        Specified by:
        getSubclasses in interface SubclassRegistry
        Parameters:
        parentClass - class, for which we want to get subclasses
        Returns:
        direct subclasses set
      • getAllSubclasses

        public java.util.Set<java.lang.Class> getAllSubclasses​(java.lang.Class parentClass)
        Method returns information about all subclasses (not only direct) for given parent class
        Specified by:
        getAllSubclasses in interface SubclassRegistry
        Parameters:
        parentClass - class, for which we want to get all subclasses in hierarchy
        Returns:
        all subclasses in hierarchy
      • createSubclassesSet

        protected void createSubclassesSet​(java.lang.Class parentClass,
                                           java.util.Set<java.lang.Class> allSubclasses)
      • registerSubclass

        public void registerSubclass​(java.lang.Class parentClass,
                                     java.lang.Class subclass)
        Register direct subclass for given parent class
        Specified by:
        registerSubclass in interface SubclassRegistry
        Parameters:
        parentClass - class, for which we want to register subclass
        subclass - subclasses, which will be registered
      • registerSubclasses

        public void registerSubclasses​(java.lang.Class parentClass,
                                       java.util.Set<java.lang.Class> subclasses)
        Method register whole set of subclasses for given class
        Specified by:
        registerSubclasses in interface SubclassRegistry
        Parameters:
        parentClass - class, for which we want to register subclasses
        subclasses - subclasses, which will be registered
      • unregisterSubclass

        public void unregisterSubclass​(java.lang.Class parentClass,
                                       java.lang.Class subclass)
        Unregister direct subclass for given parent class
        Specified by:
        unregisterSubclass in interface SubclassRegistry
        Parameters:
        parentClass - class, for which we want to unregister subclass
        subclass - subclass, which should be unregistered
      • unregisterSubclasses

        public void unregisterSubclasses​(java.lang.Class parentClass,
                                         java.util.Set<java.lang.Class> subclasses)
        Unregister direct subclasses for given parent class
        Specified by:
        unregisterSubclasses in interface SubclassRegistry
        Parameters:
        parentClass - class, for which we want to unregister subclasses
        subclasses - subclasses, which should be unregistered
      • unregisterSubclasses

        public void unregisterSubclasses​(java.lang.Class parentClass)
        Unregister all direct subclasses for given parent class
        Specified by:
        unregisterSubclasses in interface SubclassRegistry
        Parameters:
        parentClass - class, for which we want to unregister subclasses