org.jboss.kernel.plugins.annotations
Class FactoryMethodAnnotationPlugin

java.lang.Object
  extended by org.jboss.util.JBossObject
      extended by org.jboss.kernel.plugins.annotations.BaseMetaDataAnnotationPlugin<T,C>
          extended by org.jboss.kernel.plugins.annotations.AbstractAnnotationPlugin<T,C>
              extended by org.jboss.kernel.plugins.annotations.AbstractAdaptersAnnotationPlugin<T,C>
                  extended by org.jboss.kernel.plugins.annotations.AbstractParameterAnnotationPlugin<org.jboss.reflect.spi.MethodInfo,C,P>
                      extended by org.jboss.kernel.plugins.annotations.AbstractMethodParameterAnnotationPlugin<FactoryMethod,AbstractConstructorMetaData>
                          extended by org.jboss.kernel.plugins.annotations.FactoryMethodAnnotationPlugin
All Implemented Interfaces:
Cloneable, AnnotationPlugin<org.jboss.reflect.spi.MethodInfo,FactoryMethod>, MetaDataAnnotationPlugin<org.jboss.reflect.spi.MethodInfo,FactoryMethod>, org.jboss.util.JBossInterface

public class FactoryMethodAnnotationPlugin
extends AbstractMethodParameterAnnotationPlugin<FactoryMethod,AbstractConstructorMetaData>

Factory method annotation plugin.

Author:
Ales Justin

Field Summary
 
Fields inherited from class org.jboss.kernel.plugins.annotations.AbstractAdaptersAnnotationPlugin
adapters
 
Fields inherited from class org.jboss.util.JBossObject
hashCode, log, toString
 
Constructor Summary
FactoryMethodAnnotationPlugin(Set<Annotation2ValueMetaDataAdapter<? extends Annotation>> adapters)
           
 
Method Summary
protected  boolean checkAnnotatedInfo(ElementType type)
          Check additional element type - apart from Parameter element type.
protected  AbstractConstructorMetaData createParametrizedMetaData(org.jboss.reflect.spi.MethodInfo info, FactoryMethod annotation, BeanMetaData beanMetaData)
          Create new Parametrized metadata.
protected  org.jboss.reflect.spi.ParameterInfo[] getParameters(org.jboss.reflect.spi.MethodInfo info)
          Get the parameters infos from type.
protected  List<? extends MetaDataVisitorNode> handleParameterlessInfo(org.jboss.reflect.spi.MethodInfo info, FactoryMethod annotation, BeanMetaData beanMetaData)
          Handle info which has zero parameters.
protected  boolean isMetaDataAlreadyPresent(org.jboss.reflect.spi.MethodInfo info, FactoryMethod annotation, BeanMetaData beanMetaData)
          Is meta data already present.
protected  void setParameterizedMetaData(AbstractConstructorMetaData parameterizedMetaData, BeanMetaData beanMetaData)
          Set the ParameterizedMetaData instance.
 
Methods inherited from class org.jboss.kernel.plugins.annotations.AbstractMethodParameterAnnotationPlugin
createParametersSignature
 
Methods inherited from class org.jboss.kernel.plugins.annotations.AbstractParameterAnnotationPlugin
createParametrizedMetaData, createParametrizedMetaData, internalApplyAnnotation, isElementTypeSupported
 
Methods inherited from class org.jboss.kernel.plugins.annotations.AbstractAnnotationPlugin
applyAnnotation, checkIfNotAbstractBeanMetaDataSpecific, cleanAnnotation, internalApplyAnnotation, internalApplyAnnotation, internalCleanAnnotation, isMetaDataAlreadyPresent
 
Methods inherited from class org.jboss.kernel.plugins.annotations.BaseMetaDataAnnotationPlugin
applyAnnotation, getAnnotation, getSupportedTypes, isAttributePresent, isAttributePresent, isCleanup, isCleanupOnly, toShortString, toString
 
Methods inherited from class org.jboss.util.JBossObject
cacheGetHashCode, cacheToString, clone, equals, flushJBossObjectCache, getClassShortName, getHashCode, hashCode, list, notEqual, toShortString, toString, toStringImplementation
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.jboss.kernel.plugins.annotations.MetaDataAnnotationPlugin
applyAnnotation, getAnnotation, getSupportedTypes
 

Constructor Detail

FactoryMethodAnnotationPlugin

public FactoryMethodAnnotationPlugin(Set<Annotation2ValueMetaDataAdapter<? extends Annotation>> adapters)
Method Detail

checkAnnotatedInfo

protected boolean checkAnnotatedInfo(ElementType type)
Description copied from class: AbstractParameterAnnotationPlugin
Check additional element type - apart from Parameter element type.

Specified by:
checkAnnotatedInfo in class AbstractParameterAnnotationPlugin<org.jboss.reflect.spi.MethodInfo,FactoryMethod,AbstractConstructorMetaData>
Parameters:
type - the type
Returns:
true if additional type is supported

isMetaDataAlreadyPresent

protected boolean isMetaDataAlreadyPresent(org.jboss.reflect.spi.MethodInfo info,
                                           FactoryMethod annotation,
                                           BeanMetaData beanMetaData)
Description copied from class: BaseMetaDataAnnotationPlugin
Is meta data already present.

Overrides:
isMetaDataAlreadyPresent in class BaseMetaDataAnnotationPlugin<org.jboss.reflect.spi.MethodInfo,FactoryMethod>
Parameters:
info - the info
annotation - the annotation
beanMetaData - the bean meta data
Returns:
true if meta data already present

getParameters

protected org.jboss.reflect.spi.ParameterInfo[] getParameters(org.jboss.reflect.spi.MethodInfo info)
Description copied from class: AbstractParameterAnnotationPlugin
Get the parameters infos from type.

Specified by:
getParameters in class AbstractParameterAnnotationPlugin<org.jboss.reflect.spi.MethodInfo,FactoryMethod,AbstractConstructorMetaData>
Parameters:
info - the type
Returns:
array of parameter info

handleParameterlessInfo

protected List<? extends MetaDataVisitorNode> handleParameterlessInfo(org.jboss.reflect.spi.MethodInfo info,
                                                                      FactoryMethod annotation,
                                                                      BeanMetaData beanMetaData)
Description copied from class: AbstractParameterAnnotationPlugin
Handle info which has zero parameters.

Specified by:
handleParameterlessInfo in class AbstractParameterAnnotationPlugin<org.jboss.reflect.spi.MethodInfo,FactoryMethod,AbstractConstructorMetaData>
Parameters:
info - the info
annotation - the annotation
beanMetaData - the bean metadata
Returns:
list of added meta data visitor nodes

createParametrizedMetaData

protected AbstractConstructorMetaData createParametrizedMetaData(org.jboss.reflect.spi.MethodInfo info,
                                                                 FactoryMethod annotation,
                                                                 BeanMetaData beanMetaData)
Description copied from class: AbstractParameterAnnotationPlugin
Create new Parametrized metadata.

Overrides:
createParametrizedMetaData in class AbstractParameterAnnotationPlugin<org.jboss.reflect.spi.MethodInfo,FactoryMethod,AbstractConstructorMetaData>
Parameters:
info - the info
annotation - the annotation
beanMetaData - the bean metadata
Returns:
new ParameterizedMetaData instance

setParameterizedMetaData

protected void setParameterizedMetaData(AbstractConstructorMetaData parameterizedMetaData,
                                        BeanMetaData beanMetaData)
Description copied from class: AbstractParameterAnnotationPlugin
Set the ParameterizedMetaData instance.

Specified by:
setParameterizedMetaData in class AbstractParameterAnnotationPlugin<org.jboss.reflect.spi.MethodInfo,FactoryMethod,AbstractConstructorMetaData>
Parameters:
parameterizedMetaData - the parameterized metadata
beanMetaData - the bean metadata


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