Class Functions
- java.lang.Object
-
- org.apache.calcite.linq4j.function.Functions
-
public abstract class Functions extends Object
Utilities relating to functions.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classFunctions.ArrayEqualityComparerArray equality comparer.private static classFunctions.GeneratingList<E>List that generates each element using a function.private static classFunctions.IdentityEqualityComparerIdentity equality comparer.private static classFunctions.Ignore<R,T0,T1>Ignore.private static classFunctions.NullsFirstComparatorNulls first comparator.private static classFunctions.NullsFirstReverseComparatorNulls first reverse comparator.private static classFunctions.NullsLastComparatorNulls last comparator.private static classFunctions.NullsLastReverseComparatorNulls last reverse comparator.private static classFunctions.SelectorEqualityComparer<T,T2>Selector equality comparer.
-
Field Summary
Fields Modifier and Type Field Description private static EqualityComparer<Object[]>ARRAY_COMPARERprivate static Function1CONSTANT_NULL_FUNCTION1static Map<Class<? extends Function>,Class>FUNCTION_RESULT_TYPESprivate static Map<Class,Class<? extends Function>>FUNCTION1_CLASSESprivate static EqualityComparer<Object>IDENTITY_COMPARERprivate static ComparatorNULLS_FIRST_COMPARATORprivate static ComparatorNULLS_FIRST_REVERSE_COMPARATORprivate static ComparatorNULLS_LAST_COMPARATORprivate static ComparatorNULLS_LAST_REVERSE_COMPARATORprivate static Function1TO_STRING_FUNCTION1
-
Constructor Summary
Constructors Modifier Constructor Description privateFunctions()
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static <T1,R> List<R>adapt(List<T1> list, Function1<T1,R> f)Deprecated.UseLists.transform(java.util.List<F>, com.google.common.base.Function<? super F, ? extends T>)static <T1> Function1<T1,Double>adapt(DoubleFunction1<T1> f)static <T1> Function1<T1,Float>adapt(FloatFunction1<T1> f)static <T1> Function1<T1,Integer>adapt(IntegerFunction1<T1> f)static <T1> Function1<T1,Long>adapt(LongFunction1<T1> f)static <T,R> List<R>adapt(T[] ts, Function1<T,R> f)Deprecated.UseLists.transform(java.util.List<F>, com.google.common.base.Function<? super F, ? extends T>)andArrays.asList(Object[])static <E> booleanall(List<? extends E> list, Predicate1<E> predicate)Returns whetherpredicateis true for all elements oflist.static <T1,R> List<R>apply(List<T1> list, Function1<T1,R> f)Creates a copy of a list, applying a function to each element.static <T> EqualityComparer<T[]>arrayComparer()Returns anEqualityComparerthat works on arrays of objects.static <T,R> Function1<T,R>constant(R r)Returns a 1-parameter function that always returns the same value.static <T,R> Function1<T,R>constantNull()Returns a 1-parameter function that always returns null.static <E> booleanexists(List<? extends E> list, Predicate1<E> predicate)Returns whether there is an element inlistfor whichpredicateis true.static <T> Predicate1<T>falsePredicate1()A predicate with one parameter that always returnstrue.static <T1,T2> Predicate2<T1,T2>falsePredicate2()A predicate with two parameters that always returnsfalse.static <E> List<E>filter(List<E> list, Predicate1<E> predicate)Returns a list that contains only elements oflistthat matchpredicate.static Class<? extends Function>functionClass(Type aClass)Returns the appropriate interface for a lambda function with 1 argument and the given return type.static <E> List<E>generate(int size, Function1<Integer,E> fn)Returns a list generated by applying a function to each index between 0 andsize- 1.static <T> EqualityComparer<T>identityComparer()Returns anEqualityComparerthat uses object identity and hash code.static <TSource> Function1<TSource,TSource>identitySelector()static <R> Function0<R>ignore0()Returns a function of arity 0 that does nothing.static <R,T0> Function1<R,T0>ignore1()Returns a function of arity 1 that does nothing.static <R,T0,T1> Function2<R,T0,T1>ignore2()Returns a function of arity 2 that does nothing.private static <K,V> Map<V,K>inverse(Map<K,V> map)private static <K,V> Map<K,V>map(K k, V v, Object... rest)static <T extends Comparable<T>>
Comparator<T>nullsComparator(boolean nullsFirst, boolean reverse)Returns aComparatorthat handles null values.static <T,T2> Predicate1<T>ofTypePredicate(Class<T2> clazz)Creates a predicate that returns whether an object is an instance of a particular type or is null.static <T,T2> EqualityComparer<T>selectorComparer(Function1<T,T2> selector)Returns anEqualityComparerthat uses a selector function.private static <T> Predicate1<T>toPredicate(Function1<T,Boolean> function)Converts a 1-parameter function to a predicate.static <T1,T2> Predicate2<T1,T2>toPredicate(Function2<T1,T2,Boolean> function)Converts a 2-parameter function to a predicate.static <T1,T2> Predicate2<T1,T2>toPredicate2(Predicate1<T1> p1)static <TSource> Function1<TSource,String>toStringSelector()Returns a selector that calls theObject.toString()method on each element.static <T> Predicate1<T>truePredicate1()A predicate with one parameter that always returnstrue.static <T1,T2> Predicate2<T1,T2>truePredicate2()A predicate with two parameters that always returnstrue.
-
-
-
Field Detail
-
FUNCTION_RESULT_TYPES
public static final Map<Class<? extends Function>,Class> FUNCTION_RESULT_TYPES
-
NULLS_FIRST_COMPARATOR
private static final Comparator NULLS_FIRST_COMPARATOR
-
NULLS_LAST_COMPARATOR
private static final Comparator NULLS_LAST_COMPARATOR
-
NULLS_LAST_REVERSE_COMPARATOR
private static final Comparator NULLS_LAST_REVERSE_COMPARATOR
-
NULLS_FIRST_REVERSE_COMPARATOR
private static final Comparator NULLS_FIRST_REVERSE_COMPARATOR
-
IDENTITY_COMPARER
private static final EqualityComparer<Object> IDENTITY_COMPARER
-
ARRAY_COMPARER
private static final EqualityComparer<Object[]> ARRAY_COMPARER
-
CONSTANT_NULL_FUNCTION1
private static final Function1 CONSTANT_NULL_FUNCTION1
-
TO_STRING_FUNCTION1
private static final Function1 TO_STRING_FUNCTION1
-
-
Method Detail
-
constant
public static <T,R> Function1<T,R> constant(R r)
Returns a 1-parameter function that always returns the same value.
-
constantNull
public static <T,R> Function1<T,R> constantNull()
Returns a 1-parameter function that always returns null.
-
truePredicate1
public static <T> Predicate1<T> truePredicate1()
A predicate with one parameter that always returnstrue.- Type Parameters:
T- First parameter type- Returns:
- Predicate that always returns true
-
falsePredicate1
public static <T> Predicate1<T> falsePredicate1()
A predicate with one parameter that always returnstrue.- Type Parameters:
T- First parameter type- Returns:
- Predicate that always returns true
-
truePredicate2
public static <T1,T2> Predicate2<T1,T2> truePredicate2()
A predicate with two parameters that always returnstrue.- Type Parameters:
T1- First parameter typeT2- Second parameter type- Returns:
- Predicate that always returns true
-
falsePredicate2
public static <T1,T2> Predicate2<T1,T2> falsePredicate2()
A predicate with two parameters that always returnsfalse.- Type Parameters:
T1- First parameter typeT2- Second parameter type- Returns:
- Predicate that always returns false
-
identitySelector
public static <TSource> Function1<TSource,TSource> identitySelector()
-
toStringSelector
public static <TSource> Function1<TSource,String> toStringSelector()
Returns a selector that calls theObject.toString()method on each element.
-
ofTypePredicate
public static <T,T2> Predicate1<T> ofTypePredicate(Class<T2> clazz)
Creates a predicate that returns whether an object is an instance of a particular type or is null.- Type Parameters:
T- Type of objects to testT2- Desired type- Parameters:
clazz- Desired type- Returns:
- Predicate that tests for desired type
-
toPredicate2
public static <T1,T2> Predicate2<T1,T2> toPredicate2(Predicate1<T1> p1)
-
toPredicate
public static <T1,T2> Predicate2<T1,T2> toPredicate(Function2<T1,T2,Boolean> function)
Converts a 2-parameter function to a predicate.
-
toPredicate
private static <T> Predicate1<T> toPredicate(Function1<T,Boolean> function)
Converts a 1-parameter function to a predicate.
-
functionClass
public static Class<? extends Function> functionClass(Type aClass)
Returns the appropriate interface for a lambda function with 1 argument and the given return type.For example:
functionClass(Integer.TYPE) returns IntegerFunction1.class functionClass(String.class) returns Function1.class- Parameters:
aClass- Return type- Returns:
- Function class
-
adapt
public static <T1> Function1<T1,Integer> adapt(IntegerFunction1<T1> f)
-
adapt
public static <T1> Function1<T1,Double> adapt(DoubleFunction1<T1> f)
-
adapt
public static <T1> Function1<T1,Long> adapt(LongFunction1<T1> f)
-
adapt
public static <T1> Function1<T1,Float> adapt(FloatFunction1<T1> f)
-
adapt
@Deprecated public static <T1,R> List<R> adapt(List<T1> list, Function1<T1,R> f)
Deprecated. UseLists.transform(java.util.List<F>, com.google.common.base.Function<? super F, ? extends T>)Creates a view of a list that applies a function to each element.
-
adapt
@Deprecated public static <T,R> List<R> adapt(T[] ts, Function1<T,R> f)
Deprecated. UseLists.transform(java.util.List<F>, com.google.common.base.Function<? super F, ? extends T>)andArrays.asList(Object[])Creates a view of an array that applies a function to each element.
-
apply
public static <T1,R> List<R> apply(List<T1> list, Function1<T1,R> f)
Creates a copy of a list, applying a function to each element.
-
filter
public static <E> List<E> filter(List<E> list, Predicate1<E> predicate)
Returns a list that contains only elements oflistthat matchpredicate. Avoids allocating a list if all elements match or no elements match.
-
exists
public static <E> boolean exists(List<? extends E> list, Predicate1<E> predicate)
Returns whether there is an element inlistfor whichpredicateis true.
-
all
public static <E> boolean all(List<? extends E> list, Predicate1<E> predicate)
Returns whetherpredicateis true for all elements oflist.
-
generate
public static <E> List<E> generate(int size, Function1<Integer,E> fn)
Returns a list generated by applying a function to each index between 0 andsize- 1.
-
ignore0
public static <R> Function0<R> ignore0()
Returns a function of arity 0 that does nothing.- Type Parameters:
R- Return type- Returns:
- Function that does nothing.
-
ignore1
public static <R,T0> Function1<R,T0> ignore1()
Returns a function of arity 1 that does nothing.- Type Parameters:
R- Return typeT0- Type of parameter 0- Returns:
- Function that does nothing.
-
ignore2
public static <R,T0,T1> Function2<R,T0,T1> ignore2()
Returns a function of arity 2 that does nothing.- Type Parameters:
R- Return typeT0- Type of parameter 0T1- Type of parameter 1- Returns:
- Function that does nothing.
-
nullsComparator
public static <T extends Comparable<T>> Comparator<T> nullsComparator(boolean nullsFirst, boolean reverse)
Returns aComparatorthat handles null values.- Parameters:
nullsFirst- Whether nulls come before all other valuesreverse- Whether to reverse the usual order ofComparables
-
identityComparer
public static <T> EqualityComparer<T> identityComparer()
Returns anEqualityComparerthat uses object identity and hash code.
-
arrayComparer
public static <T> EqualityComparer<T[]> arrayComparer()
Returns anEqualityComparerthat works on arrays of objects.
-
selectorComparer
public static <T,T2> EqualityComparer<T> selectorComparer(Function1<T,T2> selector)
Returns anEqualityComparerthat uses a selector function.
-
-