Class EntityListener<T>

  • All Implemented Interfaces:
    java.util.EventListener, org.eclipse.persistence.descriptors.DescriptorEventListener
    Direct Known Subclasses:
    EntityClassListener

    public class EntityListener<T>
    extends org.eclipse.persistence.descriptors.DescriptorEventAdapter
    An EntityListener is placed on the owning entity's descriptor. Callback methods from an EntityListener require a signature on the method. Namely, they must have an Object parameter.
    Since:
    Eclipselink 1.0
    Author:
    Guy Pelletier
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected EntityListener​(java.lang.Class entityClass)
      INTERNAL:
        EntityListener​(java.lang.Class<T> listenerClass, java.lang.Class entityClass)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addEventMethod​(java.lang.String event, java.lang.reflect.Method method)
      INTERNAL: You can have multiple event methods for the same event, however, only one event method per class is permitted.
      protected T constructListenerInstance()
      Construct an instance of the wrapped entity listener This method will attempt to create the listener in a CDI injection friendly manner and if that fails, reflectively instantiate the class
      protected T createEntityListenerAndInjectDependencies​(java.lang.Class<T> entityListenerClass)
      Create the wrapped listener and trigger CDI injection.
      java.util.Map<java.lang.String,​java.util.List<java.lang.reflect.Method>> getAllEventMethods()
      INTERNAL:
      java.lang.Class getEntityClass()
      INTERNAL:
      protected java.util.List<java.lang.reflect.Method> getEventMethods​(int eventCode)
      INTERNAL:
      protected java.util.List<java.lang.reflect.Method> getEventMethods​(java.lang.String event)
      INTERNAL:
      protected java.lang.reflect.Method getLastEventMethod​(java.lang.String event)
      INTERNAL: Assumes a check for event methods for the given event has been called beforehand.
      T getListener()  
      java.lang.Class getListenerClass()
      INTERNAL:
      org.eclipse.persistence.internal.sessions.AbstractSession getOwningSession()
      INTERNAL:
      boolean hasCallbackMethods()
      INTERNAL:
      protected boolean hasEventMethods​(int eventCode)
      INTERNAL:
      protected boolean hasEventMethods​(java.lang.String event)
      INTERNAL:
      protected boolean hasOverriddenEventMethod​(java.lang.reflect.Method eventMethod, int eventCode)
      INTERNAL:
      protected boolean hasOverriddenEventMethod​(java.lang.reflect.Method eventMethod, java.lang.String eventCode)
      INTERNAL:
      protected boolean hasOverriddenEventMethod​(java.util.List<java.lang.reflect.Method> eventMethods, java.lang.reflect.Method eventMethod)
      INTERNAL:
      boolean isOverriddenEvent​(org.eclipse.persistence.descriptors.DescriptorEvent event, java.util.List<org.eclipse.persistence.descriptors.DescriptorEventManager> eventManagers)
      INTERNAL: Return true if listener has a lifecycle callback method that is overridden in a subclass.
      void postBuild​(org.eclipse.persistence.descriptors.DescriptorEvent event)
      INTERNAL:
      void postClone​(org.eclipse.persistence.descriptors.DescriptorEvent event)
      INTERNAL:
      void postDelete​(org.eclipse.persistence.descriptors.DescriptorEvent event)
      INTERNAL:
      void postInsert​(org.eclipse.persistence.descriptors.DescriptorEvent event)
      INTERNAL:
      void postRefresh​(org.eclipse.persistence.descriptors.DescriptorEvent event)
      INTERNAL:
      void postUpdate​(org.eclipse.persistence.descriptors.DescriptorEvent event)
      INTERNAL:
      void prePersist​(org.eclipse.persistence.descriptors.DescriptorEvent event)
      INTERNAL:
      void preRemove​(org.eclipse.persistence.descriptors.DescriptorEvent event)
      INTERNAL:
      void preUpdateWithChanges​(org.eclipse.persistence.descriptors.DescriptorEvent event)
      INTERNAL:
      void setAllEventMethods​(java.util.Map<java.lang.String,​java.util.List<java.lang.reflect.Method>> methods)
      INTERNAL:
      void setOwningSession​(org.eclipse.persistence.internal.sessions.AbstractSession owningSession)
      INTERNAL:
      void setPostBuildMethod​(java.lang.reflect.Method method)
      INTERNAL:
      void setPostCloneMethod​(java.lang.reflect.Method method)
      INTERNAL:
      void setPostDeleteMethod​(java.lang.reflect.Method method)
      INTERNAL:
      void setPostInsertMethod​(java.lang.reflect.Method method)
      INTERNAL:
      void setPostRefreshMethod​(java.lang.reflect.Method method)
      INTERNAL:
      void setPostUpdateMethod​(java.lang.reflect.Method method)
      INTERNAL:
      void setPrePersistMethod​(java.lang.reflect.Method method)
      INTERNAL:
      void setPreRemoveMethod​(java.lang.reflect.Method method)
      INTERNAL:
      void setPreUpdateWithChangesMethod​(java.lang.reflect.Method method)
      INTERNAL:
      java.lang.String toString()
      INTERNAL: Used in the debugger.
      protected void validateMethod​(java.lang.reflect.Method method)
      INTERNAL:
      protected void validateMethodModifiers​(java.lang.reflect.Method method)
      INTERNAL:
      • Methods inherited from class org.eclipse.persistence.descriptors.DescriptorEventAdapter

        aboutToDelete, aboutToInsert, aboutToUpdate, postMerge, postWrite, preDelete, preInsert, preUpdate, preWrite
      • Methods inherited from class java.lang.Object

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

      • EntityListener

        protected EntityListener​(java.lang.Class entityClass)
        INTERNAL:
      • EntityListener

        public EntityListener​(java.lang.Class<T> listenerClass,
                              java.lang.Class entityClass)
    • Method Detail

      • addEventMethod

        public void addEventMethod​(java.lang.String event,
                                   java.lang.reflect.Method method)
        INTERNAL: You can have multiple event methods for the same event, however, only one event method per class is permitted.
      • createEntityListenerAndInjectDependencies

        protected T createEntityListenerAndInjectDependencies​(java.lang.Class<T> entityListenerClass)
        Create the wrapped listener and trigger CDI injection.
        Parameters:
        entityListenerClass - the EntityListener class
        Returns:
        the class instance that has had injection run on it. If injection fails, null.
      • constructListenerInstance

        protected T constructListenerInstance()
        Construct an instance of the wrapped entity listener This method will attempt to create the listener in a CDI injection friendly manner and if that fails, reflectively instantiate the class
        Returns:
        the entity listener instance
      • getEntityClass

        public java.lang.Class getEntityClass()
        INTERNAL:
      • getAllEventMethods

        public java.util.Map<java.lang.String,​java.util.List<java.lang.reflect.Method>> getAllEventMethods()
        INTERNAL:
      • setAllEventMethods

        public void setAllEventMethods​(java.util.Map<java.lang.String,​java.util.List<java.lang.reflect.Method>> methods)
        INTERNAL:
      • setOwningSession

        public void setOwningSession​(org.eclipse.persistence.internal.sessions.AbstractSession owningSession)
        INTERNAL:
      • getEventMethods

        protected java.util.List<java.lang.reflect.Method> getEventMethods​(int eventCode)
        INTERNAL:
      • getEventMethods

        protected java.util.List<java.lang.reflect.Method> getEventMethods​(java.lang.String event)
        INTERNAL:
      • getLastEventMethod

        protected java.lang.reflect.Method getLastEventMethod​(java.lang.String event)
        INTERNAL: Assumes a check for event methods for the given event has been called beforehand.
      • getListener

        public T getListener()
      • getListenerClass

        public java.lang.Class getListenerClass()
        INTERNAL:
      • getOwningSession

        public org.eclipse.persistence.internal.sessions.AbstractSession getOwningSession()
        INTERNAL:
      • hasCallbackMethods

        public boolean hasCallbackMethods()
        INTERNAL:
      • hasEventMethods

        protected boolean hasEventMethods​(int eventCode)
        INTERNAL:
      • hasEventMethods

        protected boolean hasEventMethods​(java.lang.String event)
        INTERNAL:
      • hasOverriddenEventMethod

        protected boolean hasOverriddenEventMethod​(java.util.List<java.lang.reflect.Method> eventMethods,
                                                   java.lang.reflect.Method eventMethod)
        INTERNAL:
      • hasOverriddenEventMethod

        protected boolean hasOverriddenEventMethod​(java.lang.reflect.Method eventMethod,
                                                   int eventCode)
        INTERNAL:
      • hasOverriddenEventMethod

        protected boolean hasOverriddenEventMethod​(java.lang.reflect.Method eventMethod,
                                                   java.lang.String eventCode)
        INTERNAL:
      • isOverriddenEvent

        public boolean isOverriddenEvent​(org.eclipse.persistence.descriptors.DescriptorEvent event,
                                         java.util.List<org.eclipse.persistence.descriptors.DescriptorEventManager> eventManagers)
        INTERNAL: Return true if listener has a lifecycle callback method that is overridden in a subclass.
        Specified by:
        isOverriddenEvent in interface org.eclipse.persistence.descriptors.DescriptorEventListener
        Overrides:
        isOverriddenEvent in class org.eclipse.persistence.descriptors.DescriptorEventAdapter
      • postBuild

        public void postBuild​(org.eclipse.persistence.descriptors.DescriptorEvent event)
        INTERNAL:
        Specified by:
        postBuild in interface org.eclipse.persistence.descriptors.DescriptorEventListener
        Overrides:
        postBuild in class org.eclipse.persistence.descriptors.DescriptorEventAdapter
      • postClone

        public void postClone​(org.eclipse.persistence.descriptors.DescriptorEvent event)
        INTERNAL:
        Specified by:
        postClone in interface org.eclipse.persistence.descriptors.DescriptorEventListener
        Overrides:
        postClone in class org.eclipse.persistence.descriptors.DescriptorEventAdapter
      • postDelete

        public void postDelete​(org.eclipse.persistence.descriptors.DescriptorEvent event)
        INTERNAL:
        Specified by:
        postDelete in interface org.eclipse.persistence.descriptors.DescriptorEventListener
        Overrides:
        postDelete in class org.eclipse.persistence.descriptors.DescriptorEventAdapter
      • postInsert

        public void postInsert​(org.eclipse.persistence.descriptors.DescriptorEvent event)
        INTERNAL:
        Specified by:
        postInsert in interface org.eclipse.persistence.descriptors.DescriptorEventListener
        Overrides:
        postInsert in class org.eclipse.persistence.descriptors.DescriptorEventAdapter
      • postRefresh

        public void postRefresh​(org.eclipse.persistence.descriptors.DescriptorEvent event)
        INTERNAL:
        Specified by:
        postRefresh in interface org.eclipse.persistence.descriptors.DescriptorEventListener
        Overrides:
        postRefresh in class org.eclipse.persistence.descriptors.DescriptorEventAdapter
      • postUpdate

        public void postUpdate​(org.eclipse.persistence.descriptors.DescriptorEvent event)
        INTERNAL:
        Specified by:
        postUpdate in interface org.eclipse.persistence.descriptors.DescriptorEventListener
        Overrides:
        postUpdate in class org.eclipse.persistence.descriptors.DescriptorEventAdapter
      • prePersist

        public void prePersist​(org.eclipse.persistence.descriptors.DescriptorEvent event)
        INTERNAL:
        Specified by:
        prePersist in interface org.eclipse.persistence.descriptors.DescriptorEventListener
        Overrides:
        prePersist in class org.eclipse.persistence.descriptors.DescriptorEventAdapter
      • preRemove

        public void preRemove​(org.eclipse.persistence.descriptors.DescriptorEvent event)
        INTERNAL:
        Specified by:
        preRemove in interface org.eclipse.persistence.descriptors.DescriptorEventListener
        Overrides:
        preRemove in class org.eclipse.persistence.descriptors.DescriptorEventAdapter
      • preUpdateWithChanges

        public void preUpdateWithChanges​(org.eclipse.persistence.descriptors.DescriptorEvent event)
        INTERNAL:
        Specified by:
        preUpdateWithChanges in interface org.eclipse.persistence.descriptors.DescriptorEventListener
        Overrides:
        preUpdateWithChanges in class org.eclipse.persistence.descriptors.DescriptorEventAdapter
      • setPostBuildMethod

        public void setPostBuildMethod​(java.lang.reflect.Method method)
        INTERNAL:
      • setPostCloneMethod

        public void setPostCloneMethod​(java.lang.reflect.Method method)
        INTERNAL:
      • setPostDeleteMethod

        public void setPostDeleteMethod​(java.lang.reflect.Method method)
        INTERNAL:
      • setPostInsertMethod

        public void setPostInsertMethod​(java.lang.reflect.Method method)
        INTERNAL:
      • setPostRefreshMethod

        public void setPostRefreshMethod​(java.lang.reflect.Method method)
        INTERNAL:
      • setPostUpdateMethod

        public void setPostUpdateMethod​(java.lang.reflect.Method method)
        INTERNAL:
      • setPrePersistMethod

        public void setPrePersistMethod​(java.lang.reflect.Method method)
        INTERNAL:
      • setPreRemoveMethod

        public void setPreRemoveMethod​(java.lang.reflect.Method method)
        INTERNAL:
      • setPreUpdateWithChangesMethod

        public void setPreUpdateWithChangesMethod​(java.lang.reflect.Method method)
        INTERNAL:
      • toString

        public java.lang.String toString()
        INTERNAL: Used in the debugger.
        Overrides:
        toString in class java.lang.Object
      • validateMethod

        protected void validateMethod​(java.lang.reflect.Method method)
        INTERNAL:
      • validateMethodModifiers

        protected void validateMethodModifiers​(java.lang.reflect.Method method)
        INTERNAL: