Skip to content

Commit 01dd2be

Browse files
author
Aaron Tull
committed
Adding to README
1 parent 49f91e7 commit 01dd2be

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

README.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,35 @@ DyadObservable<Movie, Language> pairs = DyadObservable.sparseProduct(movies, (Mo
4949
return from(langs);
5050
});
5151
```
52+
53+
## Usage
54+
55+
### Filtering
56+
A filter predicate can be written for the first, second, or both elements of a
57+
dyad. The following example filters all dyads but one based on the second
58+
element.
59+
60+
```java
61+
DyadObservable.generate(Observable.range(0,100), (Integer i) -> { return i == 42 ? “yep” : “nope”; })
62+
.filter2((Boolean isAnswer) -> { return isAnswer.equals(“yep”); });
63+
```
64+
65+
### Mapping to a Single Element
66+
Dyads can be mapped back to a single valued `Observable` using the `bimap`
67+
operator.
68+
69+
```java
70+
Observable<Integer> nums = Observable.range(0,99);
71+
Observable<Integer> factorsOf3 = nums.map((Integer i) -> {return i * 3;});
72+
Observable<Integer> factorsOf5 = DyadObservable.attach(nums, 5).biMap((Integer i, Integer factor) -> {return i * factor;});
73+
```
74+
75+
### Mapping to a Dyad
76+
You can replace a single element of a dyad at a time.
77+
78+
```java
79+
DyadObservable<String, MyMovieService> synopsis = DyadObservable.attach(getAllMovies(), MyMovieService())
80+
.map1((Movie m, MyMovieService service) -> { return service.getSynopsis(m); });
81+
```
82+
83+

0 commit comments

Comments
 (0)