Skip to content

Commit

Permalink
Add update operations to AbstractService
Browse files Browse the repository at this point in the history
  • Loading branch information
tspoke committed Feb 28, 2017
1 parent 2ecf962 commit df7a229
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,40 @@ public Observable<List<T>> call(List<T> items) {
return storage.insertOrUpdate(objects);
}

@Override
public Observable<T> update(final T object, CustomObserver<T> otherSubscriber) {
final Subscription s = update(object)
.flatMap(new Func1<T, Observable<T>>() {
@Override
public Observable<T> call(T item) {
return storage.insertOrUpdate(item);
}
})
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(new SimpleObserver<>(otherSubscriber));

subscriptions.add(s);
return Observable.just(object);
}

@Override
public Observable<List<T>> update(final List<T> objects, CustomObserver<List<T>> otherSubscriber) {
final Subscription s = update(objects)
.flatMap(new Func1<List<T>, Observable<List<T>>>() {
@Override
public Observable<List<T>> call(List<T> items) {
return storage.insertOrUpdate(items);
}
})
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(new SimpleObserver<>(otherSubscriber));

subscriptions.add(s);
return storage.insertOrUpdate(objects);
}

@Override
public Observable<Void> delete(final T object, CustomObserver<Void> otherSubscriber) {
final Subscription s = delete(object)
Expand Down Expand Up @@ -292,6 +326,20 @@ public Observable<Void> call(List<T> ts) {
*/
protected abstract Observable<List<T>> insert(List<T> items);

/**
*
* @param object
* @return
*/
protected abstract Observable<T> update(T object);

/**
*
* @param items
* @return
*/
protected abstract Observable<List<T>> update(List<T> items);

/**
*
* @param items
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,22 @@ public interface IService<T> {
*/
Observable<List<T>> insert(final List<T> objects, final CustomObserver<List<T>> otherSubscriber);

/**
* Update one object
* @param otherSubscriber
* @param object
* @return
*/
Observable<T> update(final T object, final CustomObserver<T> otherSubscriber);

/**
* Update all objects
* @param otherSubscriber
* @param objects
* @return
*/
Observable<List<T>> update(final List<T> objects, final CustomObserver<List<T>> otherSubscriber);

/**
* Delete one object
* @param object
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,16 @@ protected Observable<List<T>> insert(List<T> items) {
return null;
}

@Override
protected Observable<T> update(T object) {
return null;
}

@Override
protected Observable<List<T>> update(List<T> items) {
return null;
}

@Override
protected Observable<Void> delete(List<T> items) {
return null;
Expand Down

0 comments on commit df7a229

Please sign in to comment.