Class LifecycleBuilder


  • final class LifecycleBuilder
    extends java.lang.Object
    Builds BeanLifecycles by searching class hierarchies for JSR250 annotations.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.List<java.lang.Class<?>> hierarchy  
      private java.util.List<java.lang.reflect.Method> startMethods  
      private java.util.List<java.lang.reflect.Method> stopMethods  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private void addLifecycleMethods​(java.lang.Class<?> clazz)
      Adds any declared PostConstruct and PreDestroy methods to the current lifecycle.
      Ignores methods overridden in subclasses, as well as multiple declarations of each annotation.
      BeanLifecycle build​(java.lang.Class<?> clazz)
      Builds a new BeanLifecycle for the given bean type.
      private static boolean isCandidateMethod​(java.lang.reflect.Method method)
      Tests to see if this method is a lifecycle candidate: void return, not static/abstract, no parameters.
      private boolean isOverridden​(java.lang.reflect.Method method)
      Tests to see if the given method is overridden in the subclass hierarchy.
      private static boolean samePackage​(java.lang.reflect.Method lhs, java.lang.reflect.Method rhs)  
      • Methods inherited from class java.lang.Object

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

      • startMethods

        private final java.util.List<java.lang.reflect.Method> startMethods
      • stopMethods

        private final java.util.List<java.lang.reflect.Method> stopMethods
      • hierarchy

        private final java.util.List<java.lang.Class<?>> hierarchy
    • Constructor Detail

      • LifecycleBuilder

        LifecycleBuilder()
    • Method Detail

      • build

        public BeanLifecycle build​(java.lang.Class<?> clazz)
        Builds a new BeanLifecycle for the given bean type.
        Parameters:
        clazz - The bean type
        Returns:
        Lifecycle for the bean
      • addLifecycleMethods

        private void addLifecycleMethods​(java.lang.Class<?> clazz)
        Adds any declared PostConstruct and PreDestroy methods to the current lifecycle.
        Ignores methods overridden in subclasses, as well as multiple declarations of each annotation.
        Parameters:
        clazz -
      • isOverridden

        private boolean isOverridden​(java.lang.reflect.Method method)
        Tests to see if the given method is overridden in the subclass hierarchy.
        Parameters:
        method - The method to test
        Returns:
        true if the method was overridden; otherwise false
      • isCandidateMethod

        private static boolean isCandidateMethod​(java.lang.reflect.Method method)
        Tests to see if this method is a lifecycle candidate: void return, not static/abstract, no parameters.
        Parameters:
        method - The method to test
        Returns:
        true if the method is acceptable; otherwise false
      • samePackage

        private static boolean samePackage​(java.lang.reflect.Method lhs,
                                           java.lang.reflect.Method rhs)
        Returns:
        true if the methods were declared in the same package; otherwise false