r01f.reflection.fluent
Class StaticMethodReflection

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

public final class StaticMethodReflection
extends java.lang.Object

Static methoc reflection. Usage example:

   // Equivalent to call 'Jedi.setCommonPower("Jump")'
   Reflection.staticMethod("setCommonPower").withParameterTypes(String.class).in(Jedi.class).invoke("Jump");
 
   // Equivalent to call 'Jedi.addPadawan()'
   Reflection.staticMethod("addPadawan").in(Jedi.class).invoke();
 
   // Equivalent to call 'Jedi.commonPowerCount()'
   String name = Reflection.staticMethod("commonPowerCount").withReturnType(String.class).in(Jedi.class).invoke();
 
   // Equivalent to call 'Jedi.getCommonPowers()'
   List powers = Reflection.staticMethod("getCommonPowers").withReturnType(new TypeRef>() {}).in(Jedi.class).invoke}();
 


Field Summary
private  java.lang.String _methodName
           
 
Constructor Summary
private StaticMethodReflection(java.lang.String methodName)
           
 
Method Summary
private static void _validateIsNotNullOrEmpty(java.lang.String methodName)
           
 MethodInvoker<java.lang.Void> in(java.lang.Class<?> target)
          Creates a new invoker for a static method that takes no parameters and return value void.
(package private) static StaticMethodReflection startStaticMethodAccess(java.lang.String methodName)
          Creates a new StaticMethodReflection: the starting point of the fluent interface for accessing static methods using Java Reflection.
 StaticMethodParameterTypes<java.lang.Void> withParameterTypes(java.lang.Class<?>... parameterTypes)
          Specifies the parameter types of the static method to invoke.
<T> StaticMethodReturnTypes.StaticMethodReturnType<T>
withReturnType(java.lang.Class<T> type)
          Specifies the return type of the static method to invoke.
<T> StaticMethodReturnTypes.StaticMethodReturnTypeGenerics<T>
withReturnType(TypeRef<T> type)
          Specifies the return type reference of the static 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

StaticMethodReflection

private StaticMethodReflection(java.lang.String methodName)
Method Detail

startStaticMethodAccess

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

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

withReturnType

public <T> StaticMethodReturnTypes.StaticMethodReturnType<T> withReturnType(java.lang.Class<T> type)
Specifies the return type of the static 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> StaticMethodReturnTypes.StaticMethodReturnTypeGenerics<T> withReturnType(TypeRef<T> type)
Specifies the return type reference of the static 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 StaticMethodParameterTypes<java.lang.Void> withParameterTypes(java.lang.Class<?>... parameterTypes)
Specifies the parameter types of the static 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.Class<?> target)
Creates a new invoker for a static 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)