Skip to content

Commit 14369fc

Browse files
Timestamped and its companion can now have the same name
1 parent de7ac42 commit 14369fc

File tree

4 files changed

+33
-22
lines changed

4 files changed

+33
-22
lines changed

language-adaptors/rxjava-scala/src/examples/scala/rx/lang/scala/examples/RxScalaDemo.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import scala.concurrent.duration._
2222
import org.junit.{Before, Test, Ignore}
2323
import org.junit.Assert._
2424
import rx.lang.scala.concurrency.NewThreadScheduler
25-
import rx.lang.scala.util.{Timestamped, TimestampedObject}
25+
import rx.lang.scala.util.Timestamped
2626

2727
@Ignore // Since this doesn't do automatic testing, don't increase build time unnecessarily
2828
class RxScalaDemo extends JUnitSuite {
@@ -378,7 +378,7 @@ class RxScalaDemo extends JUnitSuite {
378378

379379
@Test def timestampExample() {
380380
val timestamped = Observable.interval(100 millis).take(3).timestamp.toBlockingObservable
381-
for (TimestampedObject(millis, value) <- timestamped if value > 0) {
381+
for (Timestamped(millis, value) <- timestamped if value > 0) {
382382
println(value + " at t = " + millis)
383383
}
384384
}

language-adaptors/rxjava-scala/src/main/scala/rx/lang/scala/Observable.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ class Observable[+T](val asJava: rx.Observable[_ <: T])
199199
* @return an Observable that emits timestamped items from the source Observable
200200
*/
201201
def timestamp: Observable[Timestamped[T]] = {
202-
Observable[rx.util.Timestamped[_ <: T]](asJava.timestamp()).map(TimestampedObject(_))
202+
Observable[rx.util.Timestamped[_ <: T]](asJava.timestamp()).map(Timestamped(_))
203203
}
204204

205205
/**
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package rx.lang.scala.util
2+
3+
/**
4+
* Wraps a value and a timestamp.
5+
*/
6+
class Timestamped[+T](val asJava: rx.util.Timestamped[_ <: T]) extends AnyVal {
7+
/**
8+
* Returns the timestamp, in milliseconds.
9+
*/
10+
def millis: Long = asJava.getTimestampMillis
11+
12+
/**
13+
* Returns the value.
14+
*/
15+
def value: T = asJava.getValue : T
16+
}
17+
18+
object Timestamped {
19+
def apply[T](timestampMillis: Long, value: T): Timestamped[T] = {
20+
new Timestamped(new rx.util.Timestamped(timestampMillis, value))
21+
}
22+
23+
def apply[T](asJava: rx.util.Timestamped[_ <: T]): Timestamped[T] = {
24+
new Timestamped(asJava)
25+
}
26+
27+
def unapply[T](v: Timestamped[T]): Option[(Long, T)] = {
28+
Some((v.millis, v.value))
29+
}
30+
}

language-adaptors/rxjava-scala/src/main/scala/rx/lang/scala/util/package.scala

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -42,24 +42,5 @@ package object util {
4242
def Closing() = rx.util.Closings.create()
4343

4444
// rx.util.Range not needed because there's a standard Scala Range
45-
46-
class Timestamped[+T](val asJava: rx.util.Timestamped[_ <: T]) {}
47-
48-
// TODO rename this to Timestamped without making scalac crash
49-
object TimestampedObject {
50-
def apply[T](timestampMillis: Long, value: T): Timestamped[T] = {
51-
new Timestamped(new rx.util.Timestamped(timestampMillis, value))
52-
}
53-
54-
def apply[T](asJava: rx.util.Timestamped[_ <: T]): Timestamped[T] = {
55-
new Timestamped(asJava)
56-
}
57-
58-
def unapply[T](v: Timestamped[T]): Option[(Long, T)] = unapply(v.asJava)
59-
60-
def unapply[T](v: rx.util.Timestamped[_ <: T]): Option[(Long, T)] = {
61-
Some((v.getTimestampMillis, v.getValue))
62-
}
63-
}
6445

6546
}

0 commit comments

Comments
 (0)