Package org.cometd.annotation
Class ClientAnnotationProcessor
- java.lang.Object
-
- org.cometd.annotation.ClientAnnotationProcessor
-
public class ClientAnnotationProcessor extends Object
Processes annotations in client-side service objects.
Service objects must be annotated with
Serviceat 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 Summary
Fields Modifier and Type Field Description protected org.slf4j.Loggerlogger
-
Constructor Summary
Constructors Constructor Description ClientAnnotationProcessor(ClientSession clientSession)ClientAnnotationProcessor(ClientSession clientSession, Object... injectables)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static ObjectcallPublic(Object target, Method method, Object... arguments)protected static voidcheckMethodsPublic(Object bean, Class<? extends Annotation> annotationClass)protected static voidcheckSignaturesMatch(Method method, Class<?>[] expectedTypes, List<String> paramNames)booleandeprocess(Object bean)Performs the opposite processing done byprocess(Object)on callbacks methods annotated withListenerandSubscription, and on lifecycle methods annotated withPreDestroy.booleandeprocessCallbacks(Object bean)Performs the opposite processing done byprocessCallbacks(Object)on callback methods annotated withListenerandSubscription.protected List<Method>findAnnotatedMethods(Object bean, Class<? extends Annotation> annotationClass)protected ObjectgetField(Object bean, Field field)protected ObjectinvokePrivate(Object bean, Method method, Object... args)protected static ObjectinvokePublic(Object target, Method method, Object[] arguments)booleanprocess(Object bean)Processes dependencies annotated withSession, callbacks annotated withListenerandSubscriptionand lifecycle methods annotated withPostConstruct.protected booleanprocessInjectable(Object bean, Object injectable)protected booleanprocessInjectables(Object bean, List<Object> injectables)protected List<String>processParameters(Method method)booleanprocessPostConstruct(Object bean)Processes lifecycle methods annotated withPostConstruct.booleanprocessPreDestroy(Object bean)Processes lifecycle methods annotated withPreDestroy.protected voidsetField(Object bean, Field field, Object value)
-
-
-
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 withSession, callbacks annotated withListenerandSubscriptionand lifecycle methods annotated withPostConstruct.- 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 withPostConstruct.- 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 byprocess(Object)on callbacks methods annotated withListenerandSubscription, and on lifecycle methods annotated withPreDestroy.- 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 byprocessCallbacks(Object)on callback methods annotated withListenerandSubscription.- 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 withPreDestroy.- Parameters:
bean- the annotated service instance- Returns:
- true if at least one lifecycle method has been invoked, false otherwise
-
findAnnotatedMethods
protected List<Method> findAnnotatedMethods(Object bean, Class<? extends Annotation> annotationClass)
-
invokePublic
protected static Object invokePublic(Object target, Method method, Object[] arguments) throws Throwable
- Throws:
Throwable
-
checkMethodsPublic
protected static void checkMethodsPublic(Object bean, Class<? extends Annotation> annotationClass)
-
checkSignaturesMatch
protected static void checkSignaturesMatch(Method method, Class<?>[] expectedTypes, List<String> paramNames)
-
-