Skip to content

Commit 41c91fb

Browse files
add comment to ImplicitFunctionConversions and reformat it
to use indent of 2 spaces, as all other files in rx.lang.scala
1 parent 04f69b2 commit 41c91fb

File tree

1 file changed

+111
-133
lines changed

1 file changed

+111
-133
lines changed
Lines changed: 111 additions & 133 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
/**
22
* Copyright 2013 Netflix, Inc.
3-
*
3+
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
66
* You may obtain a copy of the License at
7-
*
7+
*
88
* http://www.apache.org/licenses/LICENSE-2.0
9-
*
9+
*
1010
* Unless required by applicable law or agreed to in writing, software
1111
* distributed under the License is distributed on an "AS IS" BASIS,
1212
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -15,137 +15,115 @@
1515
*/
1616
package rx.lang.scala
1717

18-
19-
import java.{lang => jlang}
20-
import rx.util.functions.Action0
21-
import rx.util.functions.Action1
22-
import rx.util.functions.Func0
23-
import rx.util.functions.Func1
24-
import rx.util.functions.Func2
25-
import rx.util.functions.Func3
26-
import rx.util.functions.Func4
27-
import java.{lang => jlang}
18+
import java.{ lang => jlang }
19+
import rx.util.functions._
2820

2921
/**
30-
* These function conversions are only used by the ScalaAdapter, users of RxScala don't need them.
22+
* These function conversions convert between Scala functions and Rx Funcs and Actions.
23+
* Most users RxScala won't need them, but they might be useful if one wants to use
24+
* the rx.Observable directly instead of using rx.lang.scala.Observable or if one wants
25+
* to use a Java library taking/returning Funcs and Actions.
3126
*/
3227
object ImplicitFunctionConversions {
33-
// code below is copied from
34-
// https://github.com/Netflix/RxJava/blob/master/language-adaptors/rxjava-scala/src/main/scala/rx/lang/scala/RxImplicits.scala
35-
36-
import java.{ lang => jlang }
37-
import language.implicitConversions
38-
39-
import rx.observables.BlockingObservable
40-
import rx.util.functions._
41-
import rx.{Observer, Subscription}
42-
43-
implicit def scalaFunction1ToOnSubscribeFunc[T](f: rx.lang.scala.Observer[T] => Subscription) =
44-
new rx.Observable.OnSubscribeFunc[T] {
45-
def onSubscribe(obs: Observer[_ >: T]): Subscription = {
46-
f(obs)
47-
}
48-
}
49-
50-
/*implicit def scalaFunction1ToOnSubscribeFunc[T](f: Observer[_ >: T] => Subscription) =
51-
new rx.Observable.OnSubscribeFunc[T] {
52-
def onSubscribe(obs: Observer[_ >: T]): Subscription = {
53-
f(obs)
54-
}
55-
}*/
56-
57-
/**
58-
* Converts a by-name parameter to a Rx Func0
59-
*/
60-
implicit def scalaByNameParamToFunc0[B](param: => B): Func0[B] =
61-
new Func0[B]{
62-
def call(): B = param
63-
}
64-
65-
66-
/**
67-
* Converts 0-arg function to Rx Action0
68-
*/
69-
implicit def scalaFunction0ProducingUnitToAction0(f: (() => Unit)): Action0 =
70-
new Action0 {
71-
def call(): Unit = f()
72-
}
73-
74-
/**
75-
* Converts 1-arg function to Rx Action1
76-
*/
77-
implicit def scalaFunction1ProducingUnitToAction1[A](f: (A => Unit)): Action1[A] =
78-
new Action1[A] {
79-
def call(a: A): Unit = f(a)
80-
}
81-
82-
/**
83-
* Converts 1-arg predicate to Rx Func1[A, java.lang.Boolean]
84-
*/
85-
implicit def scalaBooleanFunction1ToRxBooleanFunc1[A](f: (A => Boolean)): Func1[A, jlang.Boolean] =
86-
new Func1[A, jlang.Boolean] {
87-
def call(a: A): jlang.Boolean = f(a).booleanValue
88-
}
89-
90-
/**
91-
* Converts 2-arg predicate to Rx Func2[A, B, java.lang.Boolean]
92-
*/
93-
implicit def scalaBooleanFunction2ToRxBooleanFunc1[A, B](f: ((A, B) => Boolean)): Func2[A, B, jlang.Boolean] =
94-
new Func2[A, B, jlang.Boolean] {
95-
def call(a: A, b: B): jlang.Boolean = f(a, b).booleanValue
96-
}
97-
98-
/**
99-
* Converts a specific function shape (used in takeWhile) to the equivalent Java types with an Rx Func2
100-
*/
101-
implicit def convertTakeWhileFuncToRxFunc2[A](f: (A, Int) => Boolean): Func2[A, jlang.Integer, jlang.Boolean] =
102-
new Func2[A, jlang.Integer, jlang.Boolean] {
103-
def call(a: A, b: jlang.Integer): jlang.Boolean = f(a, b).booleanValue
104-
}
105-
106-
/**
107-
* Converts a function shaped ilke compareTo into the equivalent Rx Func2
108-
*/
109-
implicit def convertComparisonFuncToRxFunc2[A](f: (A, A) => Int): Func2[A, A, jlang.Integer] =
110-
new Func2[A, A, jlang.Integer] {
111-
def call(a1: A, a2: A): jlang.Integer = f(a1, a2).intValue
112-
}
113-
114-
/*
115-
* This implicit allows Scala code to use any exception type and still work
116-
* with invariant Func1 interface
117-
*/
118-
implicit def exceptionFunction1ToRxExceptionFunc1[A <: Exception, B](f: (A => B)): Func1[Exception, B] =
119-
new Func1[Exception, B] {
120-
def call(ex: Exception): B = f(ex.asInstanceOf[A])
121-
}
122-
123-
/**
124-
* The following implicits convert functions of different arities into the Rx equivalents
125-
*/
126-
implicit def scalaFunction0ToRxFunc0[A](f: () => A): Func0[A] =
127-
new Func0[A] {
128-
def call(): A = f()
129-
}
130-
131-
implicit def scalaFunction1ToRxFunc1[A, B](f: (A => B)): Func1[A, B] =
132-
new Func1[A, B] {
133-
def call(a: A): B = f(a)
134-
}
135-
136-
implicit def scalaFunction2ToRxFunc2[A, B, C](f: (A, B) => C): Func2[A, B, C] =
137-
new Func2[A, B, C] {
138-
def call(a: A, b: B) = f(a, b)
139-
}
140-
141-
implicit def scalaFunction3ToRxFunc3[A, B, C, D](f: (A, B, C) => D): Func3[A, B, C, D] =
142-
new Func3[A, B, C, D] {
143-
def call(a: A, b: B, c: C) = f(a, b, c)
144-
}
145-
146-
implicit def scalaFunction4ToRxFunc4[A, B, C, D, E](f: (A, B, C, D) => E): Func4[A, B, C, D, E] =
147-
new Func4[A, B, C, D, E] {
148-
def call(a: A, b: B, c: C, d: D) = f(a, b, c, d)
149-
}
150-
151-
}
28+
import language.implicitConversions
29+
30+
implicit def scalaFunction1ToOnSubscribeFunc[T](f: rx.lang.scala.Observer[T] => Subscription) =
31+
new rx.Observable.OnSubscribeFunc[T] {
32+
def onSubscribe(obs: Observer[_ >: T]): Subscription = {
33+
f(obs)
34+
}
35+
}
36+
37+
/**
38+
* Converts a by-name parameter to a Rx Func0
39+
*/
40+
implicit def scalaByNameParamToFunc0[B](param: => B): Func0[B] =
41+
new Func0[B] {
42+
def call(): B = param
43+
}
44+
45+
/**
46+
* Converts 0-arg function to Rx Action0
47+
*/
48+
implicit def scalaFunction0ProducingUnitToAction0(f: (() => Unit)): Action0 =
49+
new Action0 {
50+
def call(): Unit = f()
51+
}
52+
53+
/**
54+
* Converts 1-arg function to Rx Action1
55+
*/
56+
implicit def scalaFunction1ProducingUnitToAction1[A](f: (A => Unit)): Action1[A] =
57+
new Action1[A] {
58+
def call(a: A): Unit = f(a)
59+
}
60+
61+
/**
62+
* Converts 1-arg predicate to Rx Func1[A, java.lang.Boolean]
63+
*/
64+
implicit def scalaBooleanFunction1ToRxBooleanFunc1[A](f: (A => Boolean)): Func1[A, jlang.Boolean] =
65+
new Func1[A, jlang.Boolean] {
66+
def call(a: A): jlang.Boolean = f(a).booleanValue
67+
}
68+
69+
/**
70+
* Converts 2-arg predicate to Rx Func2[A, B, java.lang.Boolean]
71+
*/
72+
implicit def scalaBooleanFunction2ToRxBooleanFunc1[A, B](f: ((A, B) => Boolean)): Func2[A, B, jlang.Boolean] =
73+
new Func2[A, B, jlang.Boolean] {
74+
def call(a: A, b: B): jlang.Boolean = f(a, b).booleanValue
75+
}
76+
77+
/**
78+
* Converts a specific function shape (used in takeWhile) to the equivalent Java types with an Rx Func2
79+
*/
80+
implicit def convertTakeWhileFuncToRxFunc2[A](f: (A, Int) => Boolean): Func2[A, jlang.Integer, jlang.Boolean] =
81+
new Func2[A, jlang.Integer, jlang.Boolean] {
82+
def call(a: A, b: jlang.Integer): jlang.Boolean = f(a, b).booleanValue
83+
}
84+
85+
/**
86+
* Converts a function shaped ilke compareTo into the equivalent Rx Func2
87+
*/
88+
implicit def convertComparisonFuncToRxFunc2[A](f: (A, A) => Int): Func2[A, A, jlang.Integer] =
89+
new Func2[A, A, jlang.Integer] {
90+
def call(a1: A, a2: A): jlang.Integer = f(a1, a2).intValue
91+
}
92+
93+
/**
94+
* This implicit allows Scala code to use any exception type and still work
95+
* with invariant Func1 interface
96+
*/
97+
implicit def exceptionFunction1ToRxExceptionFunc1[A <: Exception, B](f: (A => B)): Func1[Exception, B] =
98+
new Func1[Exception, B] {
99+
def call(ex: Exception): B = f(ex.asInstanceOf[A])
100+
}
101+
102+
/**
103+
* The following implicits convert functions of different arities into the Rx equivalents
104+
*/
105+
implicit def scalaFunction0ToRxFunc0[A](f: () => A): Func0[A] =
106+
new Func0[A] {
107+
def call(): A = f()
108+
}
109+
110+
implicit def scalaFunction1ToRxFunc1[A, B](f: (A => B)): Func1[A, B] =
111+
new Func1[A, B] {
112+
def call(a: A): B = f(a)
113+
}
114+
115+
implicit def scalaFunction2ToRxFunc2[A, B, C](f: (A, B) => C): Func2[A, B, C] =
116+
new Func2[A, B, C] {
117+
def call(a: A, b: B) = f(a, b)
118+
}
119+
120+
implicit def scalaFunction3ToRxFunc3[A, B, C, D](f: (A, B, C) => D): Func3[A, B, C, D] =
121+
new Func3[A, B, C, D] {
122+
def call(a: A, b: B, c: C) = f(a, b, c)
123+
}
124+
125+
implicit def scalaFunction4ToRxFunc4[A, B, C, D, E](f: (A, B, C, D) => E): Func4[A, B, C, D, E] =
126+
new Func4[A, B, C, D, E] {
127+
def call(a: A, b: B, c: C, d: D) = f(a, b, c, d)
128+
}
129+
}

0 commit comments

Comments
 (0)