org.springframework.integration.config.annotation
Class AbstractAnnotationMethodPostProcessor<T>

java.lang.Object
  extended by org.springframework.integration.config.annotation.AbstractAnnotationMethodPostProcessor<T>
All Implemented Interfaces:
AnnotationMethodPostProcessor
Direct Known Subclasses:
HandlerAnnotationPostProcessor, PollableAnnotationPostProcessor, TargetAnnotationPostProcessor

public abstract class AbstractAnnotationMethodPostProcessor<T>
extends java.lang.Object
implements AnnotationMethodPostProcessor

Base class for post-processing annotated methods.

Author:
Mark Fisher

Field Summary
private  java.lang.Class<? extends java.lang.annotation.Annotation> annotationType
           
private  java.lang.ClassLoader beanClassLoader
           
protected  org.apache.commons.logging.Log logger
           
private  MessageBus messageBus
           
 
Constructor Summary
AbstractAnnotationMethodPostProcessor(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType, MessageBus messageBus, java.lang.ClassLoader beanClassLoader)
           
 
Method Summary
protected  Schedule extractSchedule(java.lang.Class<?> originalBeanClass)
           
private  java.lang.annotation.Annotation getAnnotation(java.lang.reflect.Method method)
           
protected  MessageBus getMessageBus()
           
 java.lang.Object postProcess(java.lang.Object bean, java.lang.String beanName, java.lang.Class<?> originalBeanClass)
           
protected abstract  T processMethod(java.lang.Object bean, java.lang.reflect.Method method, java.lang.annotation.Annotation annotation)
           
protected abstract  T processResults(java.util.List<T> results)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.springframework.integration.config.annotation.AnnotationMethodPostProcessor
createEndpoint
 

Field Detail

logger

protected final org.apache.commons.logging.Log logger

annotationType

private final java.lang.Class<? extends java.lang.annotation.Annotation> annotationType

messageBus

private final MessageBus messageBus

beanClassLoader

private final java.lang.ClassLoader beanClassLoader
Constructor Detail

AbstractAnnotationMethodPostProcessor

public AbstractAnnotationMethodPostProcessor(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType,
                                             MessageBus messageBus,
                                             java.lang.ClassLoader beanClassLoader)
Method Detail

getMessageBus

protected MessageBus getMessageBus()

postProcess

public java.lang.Object postProcess(java.lang.Object bean,
                                    java.lang.String beanName,
                                    java.lang.Class<?> originalBeanClass)
Specified by:
postProcess in interface AnnotationMethodPostProcessor

getAnnotation

private java.lang.annotation.Annotation getAnnotation(java.lang.reflect.Method method)

extractSchedule

protected Schedule extractSchedule(java.lang.Class<?> originalBeanClass)

processMethod

protected abstract T processMethod(java.lang.Object bean,
                                   java.lang.reflect.Method method,
                                   java.lang.annotation.Annotation annotation)

processResults

protected abstract T processResults(java.util.List<T> results)