info.javelot.functionalj.reflect.function
Class DynReflectFunction<R>

java.lang.Object
  extended by info.javelot.functionalj.reflect.function.DynReflectFunction<R>
Type Parameters:
R - the type of the result returned by the function.
All Implemented Interfaces:
FunctionN<R>

public class DynReflectFunction<R>
extends Object
implements FunctionN<R>

Function to dynamically invoke a reflect element from a list of possible targets.

Author:
Copyright © 2006 Frederic Daoud

Constructor Summary
DynReflectFunction(ReflectElement[] p_elements, ReflectParameters p_rp)
          Constructs a function to invoke one of the possible reflect elements.
DynReflectFunction(ReflectElement[] p_elements, ReflectParameters p_rp, Object[] p_params)
          Constructs a function to invoke one of the possible reflect elements, with some parameters already bound to the function.
 
Method Summary
 FunctionN bind(int p_index, Object p_param)
          Binds, at the specified index, the given parameter of this function of N parameters to return a new function of (N-1) parameters.
 FunctionN bind(Object... p_params)
          Binds the given M parameters of this function of N parameters to return a new function of (N-M) parameters.
 R call()
          Calls the function and returns the result.
 R call(Object... p_params)
          Calls the function and returns the result.
 Function0 f0()
          Returns this function as a function of no parameters.
 Function1 f1()
          Returns this function as a function of 1 parameter.
 Function2 f2()
          Returns this function as a function of 2 parameters.
 Function3 f3()
          Returns this function as a function of 3 parameters.
 Function4 f4()
          Returns this function as a function of 4 parameters.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DynReflectFunction

public DynReflectFunction(ReflectElement[] p_elements,
                          ReflectParameters p_rp)
Constructs a function to invoke one of the possible reflect elements.

Parameters:
p_elements - the reflect elements.
p_rp - the mechanism to determine elements that are compatible with parameters.

DynReflectFunction

public DynReflectFunction(ReflectElement[] p_elements,
                          ReflectParameters p_rp,
                          Object[] p_params)
Constructs a function to invoke one of the possible reflect elements, with some parameters already bound to the function.

Parameters:
p_elements - the reflect elements.
p_rp - the mechanism to determine elements that are compatible with parameters.
p_params - the parameters that have been bound to the function.
Method Detail

call

public R call(Object... p_params)
       throws FunctionException
Description copied from interface: FunctionN
Calls the function and returns the result.

Specified by:
call in interface FunctionN<R>
Parameters:
p_params - the parameters to the function.
Returns:
the result of the function call.
Throws:
FunctionException - thrown if an exception occurs during the function call.

call

public R call()
       throws FunctionException
Description copied from interface: FunctionN
Calls the function and returns the result.

Specified by:
call in interface FunctionN<R>
Returns:
the result of the function call.
Throws:
FunctionException - thrown if an exception occurs during the function call.

bind

public FunctionN bind(Object... p_params)
               throws FunctionException
Description copied from interface: FunctionN
Binds the given M parameters of this function of N parameters to return a new function of (N-M) parameters.

Specified by:
bind in interface FunctionN<R>
Parameters:
p_params - the M parameters to bind to the function.
Returns:
a new function of (N-M) parameters.
Throws:
FunctionException

bind

public FunctionN bind(int p_index,
                      Object p_param)
Description copied from interface: FunctionN
Binds, at the specified index, the given parameter of this function of N parameters to return a new function of (N-1) parameters.

Specified by:
bind in interface FunctionN<R>
Parameters:
p_index - the index at which to bind the parameter.
p_param - the parameter to bind to the function.
Returns:
a new function of (N-1) parameters.

f0

public Function0 f0()
             throws FunctionException
Description copied from interface: FunctionN
Returns this function as a function of no parameters.

Specified by:
f0 in interface FunctionN<R>
Returns:
this function of N parameters as a function of no parameters.
Throws:
FunctionException

f1

public Function1 f1()
             throws FunctionException
Description copied from interface: FunctionN
Returns this function as a function of 1 parameter.

Specified by:
f1 in interface FunctionN<R>
Returns:
this function of N parameters as a function of 1 parameter.
Throws:
FunctionException

f2

public Function2 f2()
             throws FunctionException
Description copied from interface: FunctionN
Returns this function as a function of 2 parameters.

Specified by:
f2 in interface FunctionN<R>
Returns:
this function of N parameters as a function of 2 parameters.
Throws:
FunctionException

f3

public Function3 f3()
             throws FunctionException
Description copied from interface: FunctionN
Returns this function as a function of 3 parameters.

Specified by:
f3 in interface FunctionN<R>
Returns:
this function of N parameters as a function of 3 parameters.
Throws:
FunctionException

f4

public Function4 f4()
             throws FunctionException
Description copied from interface: FunctionN
Returns this function as a function of 4 parameters.

Specified by:
f4 in interface FunctionN<R>
Returns:
this function of N parameters as a function of 4 parameters.
Throws:
FunctionException