net.ranides.assira.generic
Class AnyFunction<R>

java.lang.Object
  extended by net.ranides.assira.generic.AnyFunction<R>
All Implemented Interfaces:
Function<R,Object[]>
Direct Known Subclasses:
MethodPointer

public abstract class AnyFunction<R>
extends Object
implements Function<R,Object[]>

Funktor, reprezentujący funkcję, która pobiera więcej niż jeden argument, oraz zwraca wynik dowolnego typu. Klasa abstrakcyjna użyteczna przy obsłudze callback'ów nieokreślonego rodzaju, w szczególności metod złapanych przez refleksję.

Author:
ranides

Constructor Summary
AnyFunction()
           
 
Method Summary
 AnyFunction<R> bind(Object that)
           
 R call(Object... args)
          Metoda pomocnicza, upraszcza składnię podczas przekazywania wielu argumentów.
 boolean matches(Object... arguments)
           
<T> T
safecall(Class<T> target, Object... args)
          Metoda pomocnicza, upraszcza składnię podczas przekazywania wielu argumentów oraz dokonuje bezpiecznej konwersji na podany typ docelowy.
<T> T
safecall(TypeToken<T> target, Object... args)
          Metoda pomocnicza, upraszcza składnię podczas przekazywania wielu argumentów oraz dokonuje bezpiecznej konwersji na podany typ docelowy.
 boolean unbinded()
          Czy funkcja używa pierwszego z przekazanych argumentów jako this.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface net.ranides.assira.generic.Function
apply
 

Constructor Detail

AnyFunction

public AnyFunction()
Method Detail

call

public final R call(Object... args)
Metoda pomocnicza, upraszcza składnię podczas przekazywania wielu argumentów. Deleguje wywołanie do metody Function.apply(S)

Parameters:
args -
Returns:

safecall

public final <T> T safecall(Class<T> target,
                            Object... args)
Metoda pomocnicza, upraszcza składnię podczas przekazywania wielu argumentów oraz dokonuje bezpiecznej konwersji na podany typ docelowy. Zgodność typów nie musi być dokładna: rzutowania opiera się na LexicalCast.

Type Parameters:
T -
Parameters:
target -
args -
Returns:

safecall

public final <T> T safecall(TypeToken<T> target,
                            Object... args)
Metoda pomocnicza, upraszcza składnię podczas przekazywania wielu argumentów oraz dokonuje bezpiecznej konwersji na podany typ docelowy. Zgodność typów nie musi być dokładna: rzutowania opiera się na LexicalCast.

Type Parameters:
T -
Parameters:
target -
args -
Returns:

bind

public AnyFunction<R> bind(Object that)

unbinded

public boolean unbinded()
Czy funkcja używa pierwszego z przekazanych argumentów jako this.

Returns:

matches

public boolean matches(Object... arguments)


Copyright © 2013. All Rights Reserved.