|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.glassfish.pfl.ff.Factory
public class Factory
Factory for constructing very simple functions. Note that this does not deal with tail-call elimination, or any optimization: it simply generates functions. Much more sophisticated implementations are possible, starting with the construction of an AST (or some other variation on double dispatching). This is a higher-level function facility which will use facilities such as codegen, which itself uses the lower-level pfl code. AST representation Each node: - Return type - Combinator name (or object?) - list of argument functions
| Nested Class Summary | |
|---|---|
static class |
Factory.BinaryFunctionAlias<S,T,R>
|
static class |
Factory.BinaryFunctionBind1Impl<S,T,R>
|
static class |
Factory.BinaryFunctionBind2Impl<S,T,R>
|
static class |
Factory.BinaryPredicateBind1Impl<S,T>
|
static class |
Factory.BinaryPredicateBind2Impl<S,T>
|
static class |
Factory.BinaryVoidFunctionBind1Impl<S,T>
|
static class |
Factory.BinaryVoidFunctionBind2Impl<S,T>
|
static class |
Factory.Equal<S,T>
|
static class |
Factory.NullaryFunctionConstantImpl<T>
|
static class |
Factory.NullaryFunctionDropImpl<T>
|
static class |
Factory.NullaryPredicateConstantImpl
|
static class |
Factory.NullaryPredicateDropImpl
|
static class |
Factory.NullaryPredicateStaticFromImpl
|
static class |
Factory.UnaryFunctionAlias<S,R>
|
static class |
Factory.UnaryFunctionBindImpl<S,R>
|
static class |
Factory.UnaryFunctionCompImpl<S,T,R>
|
static class |
Factory.UnaryPredicateBindImpl<S>
|
static class |
Factory.UnaryVoidFunctionBindImpl<S>
|
| Field Summary | |
|---|---|
static BinaryFunction<java.lang.Long,java.lang.Long,java.lang.Long> |
div
|
static BinaryFunction<java.lang.Long,java.lang.Long,java.lang.Long> |
minus
|
static BinaryFunction<java.lang.Long,java.lang.Long,java.lang.Long> |
mod
|
static BinaryFunction<java.lang.Long,java.lang.Long,java.lang.Long> |
plus
|
static BinaryFunction<java.lang.Long,java.lang.Long,java.lang.Long> |
times
|
| Method Summary | ||
|---|---|---|
static
|
bind(S value,
UnaryFunction<S,R> func)
|
|
static
|
bind(S value,
UnaryPredicate<S> func)
|
|
static
|
bind(S value,
UnaryVoidFunction<S> func)
|
|
static
|
bind1(S value,
BinaryFunction<S,T,R> func)
|
|
static
|
bind1(S value,
BinaryPredicate<S,T> func)
|
|
static
|
bind1(S value,
BinaryVoidFunction<S,T> func)
|
|
static
|
bind2(T value,
BinaryFunction<S,T,R> func)
|
|
static
|
bind2(T value,
BinaryPredicate<S,T> func)
|
|
static
|
bind2(T value,
BinaryVoidFunction<S,T> func)
|
|
static
|
combine(BinaryFunction<S,S,R> func)
|
|
static
|
comp(UnaryFunction<S,T> first,
UnaryFunction<T,R> second)
|
|
static
|
comp(UnaryFunction<S,U> f1,
UnaryFunction<T,V> f2,
BinaryFunction<U,V,R> bin)
|
|
static
|
cond(BinaryPredicate<S,T> c,
BinaryFunction<S,T,R> t,
BinaryFunction<S,T,R> f)
|
|
static
|
cond(UnaryPredicate<S> c,
UnaryFunction<S,R> t,
UnaryFunction<S,R> f)
|
|
static
|
curry(BinaryFunction<S,T,R> func)
|
|
static
|
drop(BinaryFunction<S,T,R> func)
|
|
static
|
drop(BinaryPredicate<S,T> func)
|
|
static
|
drop(NullaryFunction<T> func)
|
|
static NullaryVoidFunction |
drop(NullaryPredicate func)
|
|
static
|
drop(UnaryFunction<S,R> func)
|
|
static
|
drop(UnaryPredicate<S> func)
|
|
static
|
equal()
|
|
static NullaryPredicate |
FALSE()
|
|
static
|
from(java.lang.Class<S> cls,
java.lang.String mname)
Create a unary predicate from a non-static method on class cls that returns a boolean and takes no arguments. |
|
static
|
from(java.lang.Class<S> cls,
java.lang.String mname,
java.lang.Class<T> arg1)
Create a binary predicate from a static method on class cls that returns a boolean and calls two arguments. |
|
static NullaryPredicate |
froms(java.lang.Class<?> cls,
java.lang.String mname)
Create a nullary predicate from a static method on class cls that returns a boolean. |
|
static
|
froms(java.lang.Class<?> cls,
java.lang.String mname,
java.lang.Class<S> arg1)
Create a unary predicate from a static method on class cls that returns a boolean and takes one argument. |
|
static
|
froms(java.lang.Class<?> cls,
java.lang.String mname,
java.lang.Class<S> arg1,
java.lang.Class<T> arg2)
Create a binary predicate from a static method on class cls that returns a boolean and calls two arguments. |
|
static
|
getField(java.lang.Class<? extends T> cls,
java.lang.String fname)
|
|
static
|
inject(NullaryFunction<R> func,
java.lang.Class<S> cls)
|
|
static
|
inject(R val,
java.lang.Class<S> cls)
|
|
static
|
inject1(UnaryFunction<T,R> func,
java.lang.Class<S> cls)
|
|
static
|
inject2(UnaryFunction<S,R> func,
java.lang.Class<T> cls)
|
|
static void |
main(java.lang.String[] args)
|
|
static NullaryFunction<java.lang.Long> |
NUM(int value)
|
|
static
|
OBJ(T value)
|
|
static NullaryPredicate |
TRUE()
|
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final BinaryFunction<java.lang.Long,java.lang.Long,java.lang.Long> plus
public static final BinaryFunction<java.lang.Long,java.lang.Long,java.lang.Long> minus
public static final BinaryFunction<java.lang.Long,java.lang.Long,java.lang.Long> times
public static final BinaryFunction<java.lang.Long,java.lang.Long,java.lang.Long> div
public static final BinaryFunction<java.lang.Long,java.lang.Long,java.lang.Long> mod
| Method Detail |
|---|
public static NullaryPredicate froms(java.lang.Class<?> cls,
java.lang.String mname)
cls - The class containing method boolean [mname]().mname - The name of the method in cls.
public static <S> UnaryPredicate<S> froms(java.lang.Class<?> cls,
java.lang.String mname,
java.lang.Class<S> arg1)
cls - The class containing method boolean [mname]( arg1 ).arg1 - The type of the argument to the methodmname - The name of the method in cls.
public static <S,T> BinaryPredicate<S,T> froms(java.lang.Class<?> cls,
java.lang.String mname,
java.lang.Class<S> arg1,
java.lang.Class<T> arg2)
cls - The class containing method boolean [mname]( arg1 ).arg1 - The type of the argument to the methodmname - The name of the method in cls.
public static <S> UnaryPredicate<S> from(java.lang.Class<S> cls,
java.lang.String mname)
cls - The class containing method boolean [mname]( arg1 ).mname - The name of the method in cls.
public static <S,T> BinaryPredicate<S,T> from(java.lang.Class<S> cls,
java.lang.String mname,
java.lang.Class<T> arg1)
cls - The class containing method boolean [mname]( arg1 ).arg1 - The type of the argument to the methodmname - The name of the method in cls.
public static NullaryPredicate FALSE()
public static NullaryPredicate TRUE()
public static NullaryFunction<java.lang.Long> NUM(int value)
public static <T> NullaryFunction<T> OBJ(T value)
public static <T> NullaryVoidFunction drop(NullaryFunction<T> func)
public static NullaryVoidFunction drop(NullaryPredicate func)
public static <S,R> UnaryVoidFunction<S> drop(UnaryFunction<S,R> func)
public static <S> UnaryVoidFunction<S> drop(UnaryPredicate<S> func)
public static <S,T,R> BinaryVoidFunction<S,T> drop(BinaryFunction<S,T,R> func)
public static <S,T> BinaryVoidFunction<S,T> drop(BinaryPredicate<S,T> func)
public static <S,T,R> UnaryFunction<T,R> bind1(S value,
BinaryFunction<S,T,R> func)
public static <S,T> UnaryVoidFunction<T> bind1(S value,
BinaryVoidFunction<S,T> func)
public static <S,T> UnaryPredicate<T> bind1(S value,
BinaryPredicate<S,T> func)
public static <S,T,R> UnaryFunction<S,R> bind2(T value,
BinaryFunction<S,T,R> func)
public static <S,T> UnaryVoidFunction<S> bind2(T value,
BinaryVoidFunction<S,T> func)
public static <S,T> UnaryPredicate<S> bind2(T value,
BinaryPredicate<S,T> func)
public static <S,R> NullaryFunction<R> bind(S value,
UnaryFunction<S,R> func)
public static <S> NullaryVoidFunction bind(S value,
UnaryVoidFunction<S> func)
public static <S> NullaryPredicate bind(S value,
UnaryPredicate<S> func)
public static <S,T,R> BinaryFunction<S,T,R> inject1(UnaryFunction<T,R> func,
java.lang.Class<S> cls)
public static <S,T,R> BinaryFunction<S,T,R> inject2(UnaryFunction<S,R> func,
java.lang.Class<T> cls)
public static <S,R> UnaryFunction<S,R> inject(NullaryFunction<R> func,
java.lang.Class<S> cls)
public static <S,R> UnaryFunction<S,R> inject(R val,
java.lang.Class<S> cls)
public static <S,T,R> UnaryFunction<S,R> comp(UnaryFunction<S,T> first,
UnaryFunction<T,R> second)
public static <S,T,U,V,R> BinaryFunction<S,T,R> comp(UnaryFunction<S,U> f1,
UnaryFunction<T,V> f2,
BinaryFunction<U,V,R> bin)
public static <S,R> UnaryFunction<S,R> combine(BinaryFunction<S,S,R> func)
public static <S,T> BinaryPredicate<S,T> equal()
public static <S,T,R> BinaryFunction<S,T,R> cond(BinaryPredicate<S,T> c,
BinaryFunction<S,T,R> t,
BinaryFunction<S,T,R> f)
public static <S,R> UnaryFunction<S,R> cond(UnaryPredicate<S> c,
UnaryFunction<S,R> t,
UnaryFunction<S,R> f)
public static <S,T,R> UnaryFunction<S,UnaryFunction<T,R>> curry(BinaryFunction<S,T,R> func)
public static <T,R> UnaryFunction<T,R> getField(java.lang.Class<? extends T> cls,
java.lang.String fname)
public static void main(java.lang.String[] args)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||