r01f.reflection.fluent
Class MethodReflection

java.lang.Object
  extended by r01f.reflection.fluent.MethodReflection

public final class MethodReflection
extends java.lang.Object

Method Reflection Usage example:

   // Equivalent to call 'person.setName("Luke")'
   Reflection.method("setName").withParameterTypes(String.class).in(person).invoke("Luke");
 
   // Equivalent to call 'person.concentrate()'
   Reflection.method("concentrate").in(person).invoke();
 
   // Equivalent to call 'person.getName()'
   String name = Reflection.method("getName").withReturnType(String.class).in(person).invoke();
 
   // Equivalent to call 'jedi.getPowers()'
   List powers = Reflection.method("getPowers").withReturnType(new TypeRef>() {}).in(person).invoke();
 


Field Summary
private  java.lang.String _methodName
           
 
Constructor Summary
private MethodReflection(java.lang.String name)
           
 
Method Summary
private static void _validateIsNotNullOrEmpty(java.lang.String methodName)
           
 MethodInvoker<java.lang.Void> in(java.lang.Object target)
          Creates a new invoker for a method that takes no parameters and return value void.
(package private) static MethodReflection startMethodAccess(java.lang.String methodName)
          Creates a new MethodReflection: the starting point of the fluent interface for accessing methods using Java Reflection.
 MethodParameterTypes<java.lang.Void> withParameterTypes(java.lang.Class<?>... parameterTypes)
          Specifies the parameter types of the method to invoke.
<T> MethodReturnTypes.MethodReturnType<T>
withReturnType(java.lang.Class<T> type)
          Specifies the return type of the method to invoke.
<T> MethodReturnTypes.MethodReturnTypeGenerics<T>
withReturnType(TypeRef<T> type)
          Specifies the return type reference of the method to invoke.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_methodName

private final java.lang.String _methodName
Constructor Detail

MethodReflection

private MethodReflection(java.lang.String name)
Method Detail

startMethodAccess

static MethodReflection startMethodAccess(java.lang.String methodName)
Creates a new MethodReflection: the starting point of the fluent interface for accessing methods using Java Reflection.

Parameters:
methodName - the name of the method to invoke using Java Reflection.
Returns:
the created MethodName.
Throws:
java.lang.NullPointerException - if the given name is null.
java.lang.IllegalArgumentException - if the given name is empty.

withReturnType

public <T> MethodReturnTypes.MethodReturnType<T> withReturnType(java.lang.Class<T> type)
Specifies the return type of the method to invoke. This method call is optional if the return type of the method to invoke is void.

Type Parameters:
T - the generic type of the method's return type.
Parameters:
type - the return type of the method to invoke.
Returns:
the created return type holder.
Throws:
java.lang.NullPointerException - if the given type is null.

withReturnType

public <T> MethodReturnTypes.MethodReturnTypeGenerics<T> withReturnType(TypeRef<T> type)
Specifies the return type reference of the method to invoke. This method call is optional if the return type of the method to invoke is void.

Type Parameters:
T - the generic type of the method's return type.
Parameters:
type - the return type reference of the method to invoke.
Returns:
the created return type holder.
Throws:
java.lang.NullPointerException - if the given type reference is null.

withParameterTypes

public MethodParameterTypes<java.lang.Void> withParameterTypes(java.lang.Class<?>... parameterTypes)
Specifies the parameter types of the method to invoke. This method call is optional if the method to invoke does not take arguments.

Parameters:
parameterTypes - the parameter types of the method to invoke.
Returns:
the created parameter types holder.
Throws:
java.lang.NullPointerException - if the array of parameter types is null.

in

public MethodInvoker<java.lang.Void> in(java.lang.Object target)
Creates a new invoker for a method that takes no parameters and return value void.

Parameters:
target - the object containing the method to invoke.
Returns:
the created method invoker.
Throws:
java.lang.NullPointerException - if the given target is null.

_validateIsNotNullOrEmpty

private static void _validateIsNotNullOrEmpty(java.lang.String methodName)