Package org.jboss.metadata.annotation.creator.ejb

Source Code of org.jboss.metadata.annotation.creator.ejb.InterceptorsProcessor

/*    */ package org.jboss.metadata.annotation.creator.ejb;
/*    */
/*    */ import java.lang.reflect.AnnotatedElement;
/*    */ import java.lang.reflect.Method;
/*    */ import javax.interceptor.ExcludeClassInterceptors;
/*    */ import javax.interceptor.ExcludeDefaultInterceptors;
/*    */ import javax.interceptor.Interceptors;
/*    */ import org.jboss.annotation.javaee.Descriptions;
/*    */ import org.jboss.metadata.annotation.creator.AbstractFinderUser;
/*    */ import org.jboss.metadata.annotation.creator.Processor;
/*    */ import org.jboss.metadata.annotation.creator.ProcessorUtils;
/*    */ import org.jboss.metadata.annotation.finder.AnnotationFinder;
/*    */ import org.jboss.metadata.ejb.spec.InterceptorBindingMetaData;
/*    */ import org.jboss.metadata.ejb.spec.InterceptorBindingsMetaData;
/*    */ import org.jboss.metadata.ejb.spec.InterceptorClassesMetaData;
/*    */ import org.jboss.metadata.ejb.spec.MethodParametersMetaData;
/*    */ import org.jboss.metadata.ejb.spec.NamedMethodMetaData;
/*    */
/*    */ public class InterceptorsProcessor<T extends AnnotatedElement> extends AbstractFinderUser
/*    */   implements Processor<InterceptorBindingsMetaData, T>
/*    */ {
/*    */   public InterceptorsProcessor(AnnotationFinder<AnnotatedElement> finder)
/*    */   {
/* 54 */     super(finder);
/*    */   }
/*    */
/*    */   public void process(InterceptorBindingsMetaData metaData, T type)
/*    */   {
/* 59 */     Interceptors interceptors = (Interceptors)this.finder.getAnnotation(type, Interceptors.class);
/* 60 */     if (interceptors == null)
/* 61 */       return;
/* 62 */     ExcludeClassInterceptors excludeClass = (ExcludeClassInterceptors)this.finder.getAnnotation(type, ExcludeClassInterceptors.class);
/* 63 */     ExcludeDefaultInterceptors excludeDefaults = (ExcludeDefaultInterceptors)this.finder.getAnnotation(type, ExcludeDefaultInterceptors.class);
/*    */
/* 65 */     Method method = null;
/* 66 */     if ((type instanceof Method)) {
/* 67 */       method = (Method)type;
/*    */     }
/* 69 */     String ejbName = (String)EjbNameThreadLocal.ejbName.get();
/* 70 */     InterceptorBindingMetaData interceptor = new InterceptorBindingMetaData();
/* 71 */     interceptor.setEjbName(ejbName);
/* 72 */     interceptor.setExcludeClassInterceptors(excludeClass != null);
/* 73 */     interceptor.setExcludeDefaultInterceptors(excludeDefaults != null);
/* 74 */     if (method != null)
/*    */     {
/* 76 */       NamedMethodMetaData namedMethod = new NamedMethodMetaData();
/* 77 */       namedMethod.setMethodName(method.getName());
/* 78 */       MethodParametersMetaData methodParams = ProcessorUtils.getMethodParameters(method);
/* 79 */       namedMethod.setMethodParams(methodParams);
/* 80 */       interceptor.setMethod(namedMethod);
/*    */     }
/* 82 */     InterceptorClassesMetaData classes = new InterceptorClassesMetaData();
/* 83 */     for (Class c : interceptors.value())
/*    */     {
/* 85 */       classes.add(c.getName());
/*    */     }
/* 87 */     interceptor.setInterceptorClasses(classes);
/*    */
/* 89 */     Descriptions descriptions = ProcessorUtils.getDescription("@Interceptors for: " + type);
/* 90 */     interceptor.setDescriptions(descriptions);
/* 91 */     metaData.add(interceptor);
/*    */   }
/*    */ }

/* Location:           /home/mnovotny/projects/EMBEDDED_JBOSS_BETA3_COMMUNITY/embedded/output/lib/embedded-jboss/lib/jboss-embedded-all.jar
* Qualified Name:     org.jboss.metadata.annotation.creator.ejb.InterceptorsProcessor
* JD-Core Version:    0.6.0
*/
TOP

Related Classes of org.jboss.metadata.annotation.creator.ejb.InterceptorsProcessor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.