Skip to content

Commit

Permalink
Merge pull request #1809 from benjchristensen/1797-utility-functions
Browse files Browse the repository at this point in the history
Remove Utility Functions from Public API
  • Loading branch information
benjchristensen committed Oct 30, 2014
2 parents 7aadeb9 + 56b9fea commit 002405a
Show file tree
Hide file tree
Showing 12 changed files with 221 additions and 199 deletions.
16 changes: 8 additions & 8 deletions src/main/java/rx/Observable.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@
*/
package rx;

import static rx.functions.Functions.alwaysFalse;

import java.util.*;
import java.util.concurrent.*;

import rx.exceptions.*;
import rx.functions.*;
import rx.internal.operators.*;
import rx.internal.util.ScalarSynchronousObservable;
import rx.internal.util.UtilityFunctions;

import rx.observables.*;
import rx.observers.SafeSubscriber;
import rx.plugins.*;
Expand Down Expand Up @@ -4030,7 +4030,7 @@ public final <T2> Observable<T2> dematerialize() {
* @see <a href="http://msdn.microsoft.com/en-us/library/hh229764.aspx">MSDN: Observable.distinct</a>
*/
public final Observable<T> distinct() {
return lift(new OperatorDistinct<T, T>(Functions.<T>identity()));
return lift(new OperatorDistinct<T, T>(UtilityFunctions.<T>identity()));
}

/**
Expand Down Expand Up @@ -4070,7 +4070,7 @@ public final <U> Observable<T> distinct(Func1<? super T, ? extends U> keySelecto
* @see <a href="http://msdn.microsoft.com/en-us/library/hh229494.aspx">MSDN: Observable.distinctUntilChanged</a>
*/
public final Observable<T> distinctUntilChanged() {
return lift(new OperatorDistinctUntilChanged<T, T>(Functions.<T>identity()));
return lift(new OperatorDistinctUntilChanged<T, T>(UtilityFunctions.<T>identity()));
}

/**
Expand Down Expand Up @@ -4854,7 +4854,7 @@ public final <T2, D1, D2, R> Observable<R> groupJoin(Observable<T2> right, Func1
* @see <a href="http://msdn.microsoft.com/en-us/library/hh229242.aspx">MSDN: Observable.IgnoreElements</a>
*/
public final Observable<T> ignoreElements() {
return filter(alwaysFalse());
return filter(UtilityFunctions.alwaysFalse());
}

/**
Expand All @@ -4874,7 +4874,7 @@ public final Observable<T> ignoreElements() {
* @see <a href= "http://msdn.microsoft.com/en-us/library/hh229905.aspx">MSDN: Observable.Any</a>
*/
public final Observable<Boolean> isEmpty() {
return lift(new OperatorAny<T>(Functions.alwaysTrue(), true));
return lift(new OperatorAny<T>(UtilityFunctions.alwaysTrue(), true));
}

/**
Expand Down Expand Up @@ -8481,7 +8481,7 @@ public final Observable<List<T>> toList() {
* @see <a href="http://msdn.microsoft.com/en-us/library/hh229137.aspx">MSDN: Observable.ToDictionary</a>
*/
public final <K> Observable<Map<K, T>> toMap(Func1<? super T, ? extends K> keySelector) {
return lift(new OperatorToMap<T, K, T>(keySelector, Functions.<T>identity()));
return lift(new OperatorToMap<T, K, T>(keySelector, UtilityFunctions.<T>identity()));
}

/**
Expand Down Expand Up @@ -8558,7 +8558,7 @@ public final <K, V> Observable<Map<K, V>> toMap(Func1<? super T, ? extends K> ke
* @see <a href="http://msdn.microsoft.com/en-us/library/hh212098.aspx">MSDN: Observable.ToLookup</a>
*/
public final <K> Observable<Map<K, Collection<T>>> toMultimap(Func1<? super T, ? extends K> keySelector) {
return lift(new OperatorToMultimap<T, K, T>(keySelector, Functions.<T>identity()));
return lift(new OperatorToMultimap<T, K, T>(keySelector, UtilityFunctions.<T>identity()));
}

/**
Expand Down
172 changes: 14 additions & 158 deletions src/main/java/rx/functions/Functions.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@ private Functions() {
}

/**
* Converts a {@link Func0} to a {@link FuncN} to allow heterogeneous handling of functions with different
* arities.
* Converts a {@link Func0} to a {@link FuncN} to allow heterogeneous handling of functions with different arities.
*
* @param f
* the {@code Func0} to convert
Expand All @@ -43,8 +42,7 @@ public R call(Object... args) {
}

/**
* Converts a {@link Func1} to a {@link FuncN} to allow heterogeneous handling of functions with different
* arities.
* Converts a {@link Func1} to a {@link FuncN} to allow heterogeneous handling of functions with different arities.
*
* @param f
* the {@code Func1} to convert
Expand All @@ -66,8 +64,7 @@ public R call(Object... args) {
}

/**
* Converts a {@link Func2} to a {@link FuncN} to allow heterogeneous handling of functions with different
* arities.
* Converts a {@link Func2} to a {@link FuncN} to allow heterogeneous handling of functions with different arities.
*
* @param f
* the {@code Func2} to convert
Expand All @@ -89,8 +86,7 @@ public R call(Object... args) {
}

/**
* Converts a {@link Func3} to a {@link FuncN} to allow heterogeneous handling of functions with different
* arities.
* Converts a {@link Func3} to a {@link FuncN} to allow heterogeneous handling of functions with different arities.
*
* @param f
* the {@code Func3} to convert
Expand All @@ -112,8 +108,7 @@ public R call(Object... args) {
}

/**
* Converts a {@link Func4} to a {@link FuncN} to allow heterogeneous handling of functions with different
* arities.
* Converts a {@link Func4} to a {@link FuncN} to allow heterogeneous handling of functions with different arities.
*
* @param f
* the {@code Func4} to convert
Expand All @@ -135,8 +130,7 @@ public R call(Object... args) {
}

/**
* Converts a {@link Func5} to a {@link FuncN} to allow heterogeneous handling of functions with different
* arities.
* Converts a {@link Func5} to a {@link FuncN} to allow heterogeneous handling of functions with different arities.
*
* @param f
* the {@code Func5} to convert
Expand All @@ -158,8 +152,7 @@ public R call(Object... args) {
}

/**
* Converts a {@link Func6} to a {@link FuncN} to allow heterogeneous handling of functions with different
* arities.
* Converts a {@link Func6} to a {@link FuncN} to allow heterogeneous handling of functions with different arities.
*
* @param f
* the {@code Func6} to convert
Expand All @@ -181,8 +174,7 @@ public R call(Object... args) {
}

/**
* Converts a {@link Func7} to a {@link FuncN} to allow heterogeneous handling of functions with different
* arities.
* Converts a {@link Func7} to a {@link FuncN} to allow heterogeneous handling of functions with different arities.
*
* @param f
* the {@code Func7} to convert
Expand All @@ -204,8 +196,7 @@ public R call(Object... args) {
}

/**
* Converts a {@link Func8} to a {@link FuncN} to allow heterogeneous handling of functions with different
* arities.
* Converts a {@link Func8} to a {@link FuncN} to allow heterogeneous handling of functions with different arities.
*
* @param f
* the {@code Func8} to convert
Expand All @@ -227,8 +218,7 @@ public R call(Object... args) {
}

/**
* Converts a {@link Func9} to a {@link FuncN} to allow heterogeneous handling of functions with different
* arities.
* Converts a {@link Func9} to a {@link FuncN} to allow heterogeneous handling of functions with different arities.
*
* @param f
* the {@code Func9} to convert
Expand All @@ -250,8 +240,7 @@ public R call(Object... args) {
}

/**
* Converts an {@link Action0} to a {@link FuncN} to allow heterogeneous handling of functions with
* different arities.
* Converts an {@link Action0} to a {@link FuncN} to allow heterogeneous handling of functions with different arities.
*
* @param f
* the {@code Action0} to convert
Expand All @@ -273,8 +262,7 @@ public Void call(Object... args) {
}

/**
* Converts an {@link Action1} to a {@link FuncN} to allow heterogeneous handling of functions with
* different arities.
* Converts an {@link Action1} to a {@link FuncN} to allow heterogeneous handling of functions with different arities.
*
* @param f
* the {@code Action1} to convert
Expand All @@ -297,8 +285,7 @@ public Void call(Object... args) {
}

/**
* Converts an {@link Action2} to a {@link FuncN} to allow heterogeneous handling of functions with
* different arities.
* Converts an {@link Action2} to a {@link FuncN} to allow heterogeneous handling of functions with different arities.
*
* @param f
* the {@code Action2} to convert
Expand All @@ -321,8 +308,7 @@ public Void call(Object... args) {
}

/**
* Converts an {@link Action3} to a {@link FuncN} to allow heterogeneous handling of functions with
* different arities.
* Converts an {@link Action3} to a {@link FuncN} to allow heterogeneous handling of functions with different arities.
*
* @param f
* the {@code Action3} to convert
Expand All @@ -344,134 +330,4 @@ public Void call(Object... args) {
};
}

/**
* Returns a function that always returns {@code true}.
*
* @return a {@link Func1} that accepts an Object and returns the Boolean {@code true}
*/
public static <T> Func1<? super T, Boolean> alwaysTrue() {
return AlwaysTrue.INSTANCE;
}

/**
* Returns a function that always returns {@code false}.
*
* @return a {@link Func1} that accepts an Object and returns the Boolean {@code false}
*/
public static <T> Func1<? super T, Boolean> alwaysFalse() {
return AlwaysFalse.INSTANCE;
}

/**
* Returns a function that always returns the Object it is passed.
*
* @return a {@link Func1} that accepts an Object and returns the same Object
*/
public static <T> Func1<T, T> identity() {
return new Func1<T, T>() {
@Override
public T call(T o) {
return o;
}
};
}

private enum AlwaysTrue implements Func1<Object, Boolean> {
INSTANCE;

@Override
public Boolean call(Object o) {
return true;
}
}

private enum AlwaysFalse implements Func1<Object, Boolean> {
INSTANCE;

@Override
public Boolean call(Object o) {
return false;
}
}

/**
* Returns a function that merely returns {@code null}, without side effects.
*
* @return a function that returns {@code null}
*/
@SuppressWarnings("unchecked")
public static <T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, R> NullFunction<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, R> returnNull() {
return NULL_FUNCTION;
}

@SuppressWarnings("rawtypes")
private static final NullFunction NULL_FUNCTION = new NullFunction();

private static final class NullFunction<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, R> implements
Func0<R>,
Func1<T0, R>,
Func2<T0, T1, R>,
Func3<T0, T1, T2, R>,
Func4<T0, T1, T2, T3, R>,
Func5<T0, T1, T2, T3, T4, R>,
Func6<T0, T1, T2, T3, T4, T5, R>,
Func7<T0, T1, T2, T3, T4, T5, T6, R>,
Func8<T0, T1, T2, T3, T4, T5, T6, T7, R>,
Func9<T0, T1, T2, T3, T4, T5, T6, T7, T8, R>,
FuncN<R> {
@Override
public R call() {
return null;
}

@Override
public R call(T0 t1) {
return null;
}

@Override
public R call(T0 t1, T1 t2) {
return null;
}

@Override
public R call(T0 t1, T1 t2, T2 t3) {
return null;
}

@Override
public R call(T0 t1, T1 t2, T2 t3, T3 t4) {
return null;
}

@Override
public R call(T0 t1, T1 t2, T2 t3, T3 t4, T4 t5) {
return null;
}

@Override
public R call(T0 t1, T1 t2, T2 t3, T3 t4, T4 t5, T5 t6) {
return null;
}

@Override
public R call(T0 t1, T1 t2, T2 t3, T3 t4, T4 t5, T5 t6, T6 t7) {
return null;
}

@Override
public R call(T0 t1, T1 t2, T2 t3, T3 t4, T4 t5, T5 t6, T6 t7, T7 t8) {
return null;
}

@Override
public R call(T0 t1, T1 t2, T2 t3, T3 t4, T4 t5, T5 t6, T6 t7, T7 t8, T8 t9) {
return null;
}

@Override
public R call(Object... args) {
return null;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
import rx.Observable;
import rx.functions.Func1;
import rx.functions.Func2;
import rx.functions.Functions;
import rx.internal.util.UtilityFunctions;

/**
* Returns an {@link Observable} that emits a single {@code Boolean} value that indicates whether two source
Expand Down Expand Up @@ -84,6 +84,6 @@ public Boolean call(Object t1, Object t2) {
return equality.call((T)t1, (T)t2);
}

}).all(Functions.<Boolean> identity());
}).all(UtilityFunctions.<Boolean> identity());
}
}
Loading

0 comments on commit 002405a

Please sign in to comment.