org.springsource.loaded.ri
Class MethodProvider

java.lang.Object
  extended by org.springsource.loaded.ri.MethodProvider
Direct Known Subclasses:
JavaClassMethodProvider, TypeDescriptorMethodProvider

public abstract class MethodProvider
extends java.lang.Object

To manage the complexity of the different cases created by a variety of different types of contexts where we can do 'method lookup' we need an abstraction to represent them all.

This class provides that abstraction.

Since:
0.5.0

Constructor Summary
MethodProvider()
           
 
Method Summary
static MethodProvider create(java.lang.Class<?> clazz)
           
static MethodProvider create(ReloadableType rtype)
           
static MethodProvider create(TypeRegistry registry, TypeDescriptor typeDescriptor)
           
 Invoker dynamicLookup(int mods, java.lang.String name, java.lang.String methodDescriptor)
           
 Invoker getDeclaredMethod(java.lang.String name, java.lang.Class<?>[] params)
           
 Invoker getDeclaredMethod(java.lang.String name, java.lang.String paramsDescriptor)
           
abstract  java.util.List<Invoker> getDeclaredMethods()
           
 java.lang.String getDottedName()
           
abstract  MethodProvider[] getInterfaces()
           
 Invoker getMethod(java.lang.String name, java.lang.Class<?>[] params)
           
 java.util.Collection<Invoker> getMethods()
           
abstract  java.lang.String getSlashedName()
           
abstract  MethodProvider getSuper()
           
abstract  boolean isInterface()
           
 Invoker staticLookup(int mods, java.lang.String name, java.lang.String methodDescriptor)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

MethodProvider

public MethodProvider()
Method Detail

create

public static MethodProvider create(ReloadableType rtype)

create

public static MethodProvider create(TypeRegistry registry,
                                    TypeDescriptor typeDescriptor)

create

public static MethodProvider create(java.lang.Class<?> clazz)

getDeclaredMethods

public abstract java.util.List<Invoker> getDeclaredMethods()

getSuper

public abstract MethodProvider getSuper()

getInterfaces

public abstract MethodProvider[] getInterfaces()

isInterface

public abstract boolean isInterface()

getSlashedName

public abstract java.lang.String getSlashedName()

getDottedName

public java.lang.String getDottedName()
Returns:
Full qualified name with "."

dynamicLookup

public Invoker dynamicLookup(int mods,
                             java.lang.String name,
                             java.lang.String methodDescriptor)

staticLookup

public Invoker staticLookup(int mods,
                            java.lang.String name,
                            java.lang.String methodDescriptor)

getMethod

public Invoker getMethod(java.lang.String name,
                         java.lang.Class<?>[] params)

getDeclaredMethod

public Invoker getDeclaredMethod(java.lang.String name,
                                 java.lang.String paramsDescriptor)

getDeclaredMethod

public Invoker getDeclaredMethod(java.lang.String name,
                                 java.lang.Class<?>[] params)

getMethods

public java.util.Collection<Invoker> getMethods()

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object