Class ClientAnnotationProcessor


  • public class ClientAnnotationProcessor
    extends Object

    Processes annotations in client-side service objects.

    Service objects must be annotated with Service at class level to be processed by this processor, for example:

     @Service
     public class MyService
     {
         @Listener(Channel.META_CONNECT)
         public void metaConnect(Message message)
         {
             // Do something
         }
     }
     

    The processor is used in this way:

     ClientSession bayeux = ...;
     ClientAnnotationProcessor processor = ClientAnnotationProcessor.get(bayeux);
     MyService s = new MyService();
     processor.process(s);
     
    See Also:
    ServerAnnotationProcessor
    • Field Detail

      • logger

        protected final org.slf4j.Logger logger
    • Constructor Detail

      • ClientAnnotationProcessor

        public ClientAnnotationProcessor​(ClientSession clientSession)
      • ClientAnnotationProcessor

        public ClientAnnotationProcessor​(ClientSession clientSession,
                                         Object... injectables)
    • Method Detail

      • process

        public boolean process​(Object bean)
        Processes dependencies annotated with Session, callbacks annotated with Listener and Subscription and lifecycle methods annotated with PostConstruct.
        Parameters:
        bean - the annotated service instance
        Returns:
        true if at least one dependency or callback has been processed, false otherwise
      • processPostConstruct

        public boolean processPostConstruct​(Object bean)
        Processes lifecycle methods annotated with PostConstruct.
        Parameters:
        bean - the annotated service instance
        Returns:
        true if at least one lifecycle method has been invoked, false otherwise
      • deprocess

        public boolean deprocess​(Object bean)
        Performs the opposite processing done by process(Object) on callbacks methods annotated with Listener and Subscription, and on lifecycle methods annotated with PreDestroy.
        Parameters:
        bean - the annotated service instance
        Returns:
        true if at least one deprocessing has been performed, false otherwise
        See Also:
        process(Object)
      • deprocessCallbacks

        public boolean deprocessCallbacks​(Object bean)
        Performs the opposite processing done by processCallbacks(Object) on callback methods annotated with Listener and Subscription.
        Parameters:
        bean - the annotated service instance
        Returns:
        true if the at least one callback has been deprocessed
      • processPreDestroy

        public boolean processPreDestroy​(Object bean)
        Processes lifecycle methods annotated with PreDestroy.
        Parameters:
        bean - the annotated service instance
        Returns:
        true if at least one lifecycle method has been invoked, false otherwise
      • processParameters

        protected List<String> processParameters​(Method method)
      • checkMethodsPublic

        protected static void checkMethodsPublic​(Object bean,
                                                 Class<? extends Annotation> annotationClass)
      • checkSignaturesMatch

        protected static void checkSignaturesMatch​(Method method,
                                                   Class<?>[] expectedTypes,
                                                   List<String> paramNames)
      • processInjectables

        protected boolean processInjectables​(Object bean,
                                             List<Object> injectables)
      • processInjectable

        protected boolean processInjectable​(Object bean,
                                            Object injectable)