Skip to content

Commit d394c49

Browse files
committed
Merge pull request #3449 from JakeWharton/jw/delete-code
2.x: Remove duplication of Optional API behavior.
2 parents aa400d1 + 94bbe08 commit d394c49

File tree

2 files changed

+12
-56
lines changed

2 files changed

+12
-56
lines changed

src/main/java/io/reactivex/observables/BlockingObservable.java

Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -164,57 +164,35 @@ public Optional<T> firstOption() {
164164
}
165165

166166
public T first() {
167-
Optional<T> o = firstOption();
168-
if (o.isPresent()) {
169-
return o.get();
170-
}
171-
throw new NoSuchElementException();
167+
return firstOption().get();
172168
}
173169

174170
public T first(T defaultValue) {
175-
Optional<T> o = firstOption();
176-
if (o.isPresent()) {
177-
return o.get();
178-
}
179-
return defaultValue;
171+
return firstOption().orElse(defaultValue);
180172
}
181173

182174
public Optional<T> lastOption() {
183175
return stream().reduce((a, b) -> b);
184176
}
185177

186178
public T last() {
187-
Optional<T> o = lastOption();
188-
if (o.isPresent()) {
189-
return o.get();
190-
}
191-
throw new NoSuchElementException();
179+
return lastOption().get();
192180
}
193181

194182
public T last(T defaultValue) {
195-
Optional<T> o = lastOption();
196-
if (o.isPresent()) {
197-
return o.get();
198-
}
199-
return defaultValue;
183+
return lastOption().orElse(defaultValue);
200184
}
201185

202186
public T single() {
203187
Iterator<T> it = iterate(Observable.fromPublisher(o).single());
204188
Optional<T> o = makeStream(it, false).findFirst();
205-
if (o.isPresent()) {
206-
return o.get();
207-
}
208-
throw new NoSuchElementException();
189+
return o.get();
209190
}
210191

211192
public T single(T defaultValue) {
212193
Iterator<T> it = iterate(Observable.<T>fromPublisher(o).single(defaultValue));
213194
Optional<T> o = makeStream(it, false).findFirst();
214-
if (o.isPresent()) {
215-
return o.get();
216-
}
217-
return defaultValue;
195+
return o.orElse(defaultValue);
218196
}
219197

220198
public Iterable<T> mostRecent(T initialValue) {

src/main/java/io/reactivex/observables/nbp/NbpBlockingObservable.java

Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -159,58 +159,36 @@ public Optional<T> firstOption() {
159159
}
160160

161161
public T first() {
162-
Optional<T> o = firstOption();
163-
if (o.isPresent()) {
164-
return o.get();
165-
}
166-
throw new NoSuchElementException();
162+
return firstOption().get();
167163
}
168164

169165
public T first(T defaultValue) {
170-
Optional<T> o = firstOption();
171-
if (o.isPresent()) {
172-
return o.get();
173-
}
174-
return defaultValue;
166+
return firstOption().orElse(defaultValue);
175167
}
176168

177169
public Optional<T> lastOption() {
178170
return stream().reduce((a, b) -> b);
179171
}
180172

181173
public T last() {
182-
Optional<T> o = lastOption();
183-
if (o.isPresent()) {
184-
return o.get();
185-
}
186-
throw new NoSuchElementException();
174+
return lastOption().get();
187175
}
188176

189177
public T last(T defaultValue) {
190-
Optional<T> o = lastOption();
191-
if (o.isPresent()) {
192-
return o.get();
193-
}
194-
return defaultValue;
178+
return lastOption().orElse(defaultValue);
195179
}
196180

197181
public T single() {
198182
Iterator<T> it = iterate(o.single());
199183
Optional<T> o = makeStream(it, false).findFirst();
200-
if (o.isPresent()) {
201-
return o.get();
202-
}
203-
throw new NoSuchElementException();
184+
return o.get();
204185
}
205186

206187
public T single(T defaultValue) {
207188
@SuppressWarnings("unchecked")
208189
Iterator<T> it = iterate(((NbpObservable<T>)o).single(defaultValue));
209190
Optional<T> o = makeStream(it, false).findFirst();
210-
if (o.isPresent()) {
211-
return o.get();
212-
}
213-
return defaultValue;
191+
return o.orElse(defaultValue);
214192
}
215193

216194
public Iterable<T> mostRecent(T initialValue) {

0 commit comments

Comments
 (0)