Skip to content

Commit 56b9fea

Browse files
Remove Utility Functions from Public API
Fixes #1797
1 parent a75d4f9 commit 56b9fea

12 files changed

+207
-171
lines changed

src/main/java/rx/Observable.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@
1212
*/
1313
package rx;
1414

15-
import static rx.functions.Functions.alwaysFalse;
16-
1715
import java.util.*;
1816
import java.util.concurrent.*;
1917

2018
import rx.exceptions.*;
2119
import rx.functions.*;
2220
import rx.internal.operators.*;
2321
import rx.internal.util.ScalarSynchronousObservable;
22+
import rx.internal.util.UtilityFunctions;
23+
2424
import rx.observables.*;
2525
import rx.observers.SafeSubscriber;
2626
import rx.plugins.*;
@@ -4030,7 +4030,7 @@ public final <T2> Observable<T2> dematerialize() {
40304030
* @see <a href="http://msdn.microsoft.com/en-us/library/hh229764.aspx">MSDN: Observable.distinct</a>
40314031
*/
40324032
public final Observable<T> distinct() {
4033-
return lift(new OperatorDistinct<T, T>(Functions.<T>identity()));
4033+
return lift(new OperatorDistinct<T, T>(UtilityFunctions.<T>identity()));
40344034
}
40354035

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

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

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

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

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

85648564
/**

src/main/java/rx/functions/Functions.java

Lines changed: 0 additions & 130 deletions
Original file line numberDiff line numberDiff line change
@@ -330,134 +330,4 @@ public Void call(Object... args) {
330330
};
331331
}
332332

333-
/**
334-
* Returns a function that always returns {@code true}.
335-
*
336-
* @return a {@link Func1} that accepts an Object and returns the Boolean {@code true}
337-
*/
338-
public static <T> Func1<? super T, Boolean> alwaysTrue() {
339-
return AlwaysTrue.INSTANCE;
340-
}
341-
342-
/**
343-
* Returns a function that always returns {@code false}.
344-
*
345-
* @return a {@link Func1} that accepts an Object and returns the Boolean {@code false}
346-
*/
347-
public static <T> Func1<? super T, Boolean> alwaysFalse() {
348-
return AlwaysFalse.INSTANCE;
349-
}
350-
351-
/**
352-
* Returns a function that always returns the Object it is passed.
353-
*
354-
* @return a {@link Func1} that accepts an Object and returns the same Object
355-
*/
356-
public static <T> Func1<T, T> identity() {
357-
return new Func1<T, T>() {
358-
@Override
359-
public T call(T o) {
360-
return o;
361-
}
362-
};
363-
}
364-
365-
private enum AlwaysTrue implements Func1<Object, Boolean> {
366-
INSTANCE;
367-
368-
@Override
369-
public Boolean call(Object o) {
370-
return true;
371-
}
372-
}
373-
374-
private enum AlwaysFalse implements Func1<Object, Boolean> {
375-
INSTANCE;
376-
377-
@Override
378-
public Boolean call(Object o) {
379-
return false;
380-
}
381-
}
382-
383-
/**
384-
* Returns a function that merely returns {@code null}, without side effects.
385-
*
386-
* @return a function that returns {@code null}
387-
*/
388-
@SuppressWarnings("unchecked")
389-
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() {
390-
return NULL_FUNCTION;
391-
}
392-
393-
@SuppressWarnings("rawtypes")
394-
private static final NullFunction NULL_FUNCTION = new NullFunction();
395-
396-
private static final class NullFunction<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, R> implements
397-
Func0<R>,
398-
Func1<T0, R>,
399-
Func2<T0, T1, R>,
400-
Func3<T0, T1, T2, R>,
401-
Func4<T0, T1, T2, T3, R>,
402-
Func5<T0, T1, T2, T3, T4, R>,
403-
Func6<T0, T1, T2, T3, T4, T5, R>,
404-
Func7<T0, T1, T2, T3, T4, T5, T6, R>,
405-
Func8<T0, T1, T2, T3, T4, T5, T6, T7, R>,
406-
Func9<T0, T1, T2, T3, T4, T5, T6, T7, T8, R>,
407-
FuncN<R> {
408-
@Override
409-
public R call() {
410-
return null;
411-
}
412-
413-
@Override
414-
public R call(T0 t1) {
415-
return null;
416-
}
417-
418-
@Override
419-
public R call(T0 t1, T1 t2) {
420-
return null;
421-
}
422-
423-
@Override
424-
public R call(T0 t1, T1 t2, T2 t3) {
425-
return null;
426-
}
427-
428-
@Override
429-
public R call(T0 t1, T1 t2, T2 t3, T3 t4) {
430-
return null;
431-
}
432-
433-
@Override
434-
public R call(T0 t1, T1 t2, T2 t3, T3 t4, T4 t5) {
435-
return null;
436-
}
437-
438-
@Override
439-
public R call(T0 t1, T1 t2, T2 t3, T3 t4, T4 t5, T5 t6) {
440-
return null;
441-
}
442-
443-
@Override
444-
public R call(T0 t1, T1 t2, T2 t3, T3 t4, T4 t5, T5 t6, T6 t7) {
445-
return null;
446-
}
447-
448-
@Override
449-
public R call(T0 t1, T1 t2, T2 t3, T3 t4, T4 t5, T5 t6, T6 t7, T7 t8) {
450-
return null;
451-
}
452-
453-
@Override
454-
public R call(T0 t1, T1 t2, T2 t3, T3 t4, T4 t5, T5 t6, T6 t7, T7 t8, T8 t9) {
455-
return null;
456-
}
457-
458-
@Override
459-
public R call(Object... args) {
460-
return null;
461-
}
462-
}
463333
}

src/main/java/rx/internal/operators/OperatorSequenceEqual.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import rx.Observable;
2222
import rx.functions.Func1;
2323
import rx.functions.Func2;
24-
import rx.functions.Functions;
24+
import rx.internal.util.UtilityFunctions;
2525

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

87-
}).all(Functions.<Boolean> identity());
87+
}).all(UtilityFunctions.<Boolean> identity());
8888
}
8989
}
Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
/**
2+
* Copyright 2014 Netflix, Inc.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in
5+
* compliance with the License. You may obtain a copy of the License at
6+
*
7+
* http://www.apache.org/licenses/LICENSE-2.0
8+
*
9+
* Unless required by applicable law or agreed to in writing, software distributed under the License is
10+
* distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See
11+
* the License for the specific language governing permissions and limitations under the License.
12+
*/
13+
package rx.internal.util;
14+
15+
import rx.functions.Func0;
16+
import rx.functions.Func1;
17+
import rx.functions.Func2;
18+
import rx.functions.Func3;
19+
import rx.functions.Func4;
20+
import rx.functions.Func5;
21+
import rx.functions.Func6;
22+
import rx.functions.Func7;
23+
import rx.functions.Func8;
24+
import rx.functions.Func9;
25+
import rx.functions.FuncN;
26+
27+
/**
28+
* Utility functions for internal use that we don't want part of the public API.
29+
*/
30+
public final class UtilityFunctions {
31+
32+
/**
33+
* Returns a function that always returns {@code true}.
34+
*
35+
* @return a {@link Func1} that accepts an Object and returns the Boolean {@code true}
36+
*/
37+
public static <T> Func1<? super T, Boolean> alwaysTrue() {
38+
return AlwaysTrue.INSTANCE;
39+
}
40+
41+
/**
42+
* Returns a function that always returns {@code false}.
43+
*
44+
* @return a {@link Func1} that accepts an Object and returns the Boolean {@code false}
45+
*/
46+
public static <T> Func1<? super T, Boolean> alwaysFalse() {
47+
return AlwaysFalse.INSTANCE;
48+
}
49+
50+
/**
51+
* Returns a function that always returns the Object it is passed.
52+
*
53+
* @return a {@link Func1} that accepts an Object and returns the same Object
54+
*/
55+
public static <T> Func1<T, T> identity() {
56+
return new Func1<T, T>() {
57+
@Override
58+
public T call(T o) {
59+
return o;
60+
}
61+
};
62+
}
63+
64+
private enum AlwaysTrue implements Func1<Object, Boolean> {
65+
INSTANCE;
66+
67+
@Override
68+
public Boolean call(Object o) {
69+
return true;
70+
}
71+
}
72+
73+
private enum AlwaysFalse implements Func1<Object, Boolean> {
74+
INSTANCE;
75+
76+
@Override
77+
public Boolean call(Object o) {
78+
return false;
79+
}
80+
}
81+
82+
/**
83+
* Returns a function that merely returns {@code null}, without side effects.
84+
*
85+
* @return a function that returns {@code null}
86+
*/
87+
@SuppressWarnings("unchecked")
88+
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() {
89+
return NULL_FUNCTION;
90+
}
91+
92+
@SuppressWarnings("rawtypes")
93+
private static final NullFunction NULL_FUNCTION = new NullFunction();
94+
95+
private static final class NullFunction<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, R> implements
96+
Func0<R>,
97+
Func1<T0, R>,
98+
Func2<T0, T1, R>,
99+
Func3<T0, T1, T2, R>,
100+
Func4<T0, T1, T2, T3, R>,
101+
Func5<T0, T1, T2, T3, T4, R>,
102+
Func6<T0, T1, T2, T3, T4, T5, R>,
103+
Func7<T0, T1, T2, T3, T4, T5, T6, R>,
104+
Func8<T0, T1, T2, T3, T4, T5, T6, T7, R>,
105+
Func9<T0, T1, T2, T3, T4, T5, T6, T7, T8, R>,
106+
FuncN<R> {
107+
@Override
108+
public R call() {
109+
return null;
110+
}
111+
112+
@Override
113+
public R call(T0 t1) {
114+
return null;
115+
}
116+
117+
@Override
118+
public R call(T0 t1, T1 t2) {
119+
return null;
120+
}
121+
122+
@Override
123+
public R call(T0 t1, T1 t2, T2 t3) {
124+
return null;
125+
}
126+
127+
@Override
128+
public R call(T0 t1, T1 t2, T2 t3, T3 t4) {
129+
return null;
130+
}
131+
132+
@Override
133+
public R call(T0 t1, T1 t2, T2 t3, T3 t4, T4 t5) {
134+
return null;
135+
}
136+
137+
@Override
138+
public R call(T0 t1, T1 t2, T2 t3, T3 t4, T4 t5, T5 t6) {
139+
return null;
140+
}
141+
142+
@Override
143+
public R call(T0 t1, T1 t2, T2 t3, T3 t4, T4 t5, T5 t6, T6 t7) {
144+
return null;
145+
}
146+
147+
@Override
148+
public R call(T0 t1, T1 t2, T2 t3, T3 t4, T4 t5, T5 t6, T6 t7, T7 t8) {
149+
return null;
150+
}
151+
152+
@Override
153+
public R call(T0 t1, T1 t2, T2 t3, T3 t4, T4 t5, T5 t6, T6 t7, T7 t8, T8 t9) {
154+
return null;
155+
}
156+
157+
@Override
158+
public R call(Object... args) {
159+
return null;
160+
}
161+
}
162+
163+
}

0 commit comments

Comments
 (0)