org.jboss.metadata.annotation.creator.ejb
Class AbstractEnterpriseBeanProcessor<MD extends EnterpriseBeanMetaData>

java.lang.Object
  extended by org.jboss.metadata.annotation.creator.AbstractFinderUser
      extended by org.jboss.metadata.annotation.creator.AbstractProcessor<MD>
          extended by org.jboss.metadata.annotation.creator.AbstractComponentProcessor<MD>
              extended by org.jboss.metadata.annotation.creator.ejb.AbstractEnterpriseBeanProcessor<MD>
All Implemented Interfaces:
Processor<EjbJar3xMetaData,Class<?>>
Direct Known Subclasses:
AbstractSessionBeanProcessor, MessageDrivenProcessor

public abstract class AbstractEnterpriseBeanProcessor<MD extends EnterpriseBeanMetaData>
extends AbstractComponentProcessor<MD>
implements Processor<EjbJar3xMetaData,Class<?>>

Comment

Version:
$Revision: 76002 $
Author:
Carlo de Wolf

Nested Class Summary
 
Nested classes/interfaces inherited from class org.jboss.metadata.annotation.creator.AbstractProcessor
AbstractProcessor.Scope
 
Field Summary
 
Fields inherited from class org.jboss.metadata.annotation.creator.AbstractFinderUser
finder
 
Constructor Summary
protected AbstractEnterpriseBeanProcessor(AnnotationFinder<AnnotatedElement> finder)
           
 
Method Summary
protected abstract  MD create(Class<?> beanClass)
           
abstract  Collection<Class<? extends Annotation>> getAnnotationTypes()
          Get the processed annotations types.
 Collection<Class<? extends Annotation>> getProcessedAnnotations(AbstractProcessor.Scope scope)
          Get the processed annotations for a specific scope.
 void process(EjbJar3xMetaData ejbJarMetaData, Class<?> beanClass)
          TODO: this should iterate over all method processors
 
Methods inherited from class org.jboss.metadata.annotation.creator.AbstractComponentProcessor
process, process
 
Methods inherited from class org.jboss.metadata.annotation.creator.AbstractProcessor
addFieldProcessor, addMethodProcessor, addTypeProcessor, process, processClass, processClass
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractEnterpriseBeanProcessor

protected AbstractEnterpriseBeanProcessor(AnnotationFinder<AnnotatedElement> finder)
Method Detail

create

protected abstract MD create(Class<?> beanClass)

process

public void process(EjbJar3xMetaData ejbJarMetaData,
                    Class<?> beanClass)
TODO: this should iterate over all method processors

Specified by:
process in interface Processor<EjbJar3xMetaData,Class<?>>
Parameters:
ejbJarMetaData - the meta data
beanClass - the annotated element

getAnnotationTypes

public abstract Collection<Class<? extends Annotation>> getAnnotationTypes()
Get the processed annotations types. Inherited classes need to override the getAnnotationTypes method from AbstractProcessor to only expose the top level class annotation.

Specified by:
getAnnotationTypes in interface Processor<EjbJar3xMetaData,Class<?>>
Overrides:
getAnnotationTypes in class AbstractProcessor<MD extends EnterpriseBeanMetaData>
Returns:
processed annotations

getProcessedAnnotations

public Collection<Class<? extends Annotation>> getProcessedAnnotations(AbstractProcessor.Scope scope)
Get the processed annotations for a specific scope. In case of a EnterpriseBean we only need the TYPE annotation, as the other annotations depend on the presents of this 'top level' annotation. e.g. @Stateful, @Stateles, @MesageDriven

Overrides:
getProcessedAnnotations in class AbstractProcessor<MD extends EnterpriseBeanMetaData>
Parameters:
scope - the Scope
Returns:
the processed annotations


Copyright © 2011 JBoss, a division of Red Hat, Inc.. All Rights Reserved.