org.apache.tuscany.sca.implementation.java.introspect.impl
Class AbstractPropertyProcessor<A extends java.lang.annotation.Annotation>

java.lang.Object
  extended by org.apache.tuscany.sca.implementation.java.introspect.impl.BaseJavaClassVisitor
      extended by org.apache.tuscany.sca.implementation.java.introspect.impl.AbstractPropertyProcessor<A>
All Implemented Interfaces:
JavaClassVisitor
Direct Known Subclasses:
PropertyProcessor

public abstract class AbstractPropertyProcessor<A extends java.lang.annotation.Annotation>
extends BaseJavaClassVisitor

Base class for ImplementationProcessors that handle annotations that add Properties.


Field Summary
 
Fields inherited from class org.apache.tuscany.sca.implementation.java.introspect.impl.BaseJavaClassVisitor
assemblyFactory
 
Constructor Summary
protected AbstractPropertyProcessor(AssemblyFactory assemblyFactory, java.lang.Class<A> annotationClass)
           
 
Method Summary
protected  Property createProperty(java.lang.String name, JavaElementImpl element)
           
protected abstract  java.lang.String getName(A annotation)
           
protected abstract  void initProperty(Property property, A annotation)
           
 void visitConstructorParameter(JavaParameterImpl parameter, JavaImplementation type)
           
 void visitField(java.lang.reflect.Field field, JavaImplementation type)
          A callback received as the component implementation's public and protected fields are evaluated
 void visitMethod(java.lang.reflect.Method method, JavaImplementation type)
          A callback received as the component implementation's public and protected methods are evaluated
 
Methods inherited from class org.apache.tuscany.sca.implementation.java.introspect.impl.BaseJavaClassVisitor
visitClass, visitConstructor, visitEnd, visitSuperClass
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractPropertyProcessor

protected AbstractPropertyProcessor(AssemblyFactory assemblyFactory,
                                    java.lang.Class<A> annotationClass)
Method Detail

visitMethod

public void visitMethod(java.lang.reflect.Method method,
                        JavaImplementation type)
                 throws IntrospectionException
Description copied from interface: JavaClassVisitor
A callback received as the component implementation's public and protected methods are evaluated

Specified by:
visitMethod in interface JavaClassVisitor
Overrides:
visitMethod in class BaseJavaClassVisitor
Parameters:
method - the current public or protected method being evaluated
type - the incomplete component type associated with the implementation class
Throws:
IntrospectionException - if an error is encountered while processing metadata

visitField

public void visitField(java.lang.reflect.Field field,
                       JavaImplementation type)
                throws IntrospectionException
Description copied from interface: JavaClassVisitor
A callback received as the component implementation's public and protected fields are evaluated

Specified by:
visitField in interface JavaClassVisitor
Overrides:
visitField in class BaseJavaClassVisitor
Parameters:
field - the current public or protected field being evaluated
type - the incomplete component type associated with the implementation class
Throws:
IntrospectionException - if an error is encountered while processing metadata

visitConstructorParameter

public void visitConstructorParameter(JavaParameterImpl parameter,
                                      JavaImplementation type)
                               throws IntrospectionException
Specified by:
visitConstructorParameter in interface JavaClassVisitor
Overrides:
visitConstructorParameter in class BaseJavaClassVisitor
Throws:
IntrospectionException

getName

protected abstract java.lang.String getName(A annotation)

initProperty

protected abstract void initProperty(Property property,
                                     A annotation)
                              throws IntrospectionException
Throws:
IntrospectionException

createProperty

protected Property createProperty(java.lang.String name,
                                  JavaElementImpl element)
                           throws IntrospectionException
Throws:
IntrospectionException