Skip to content

Commit 3601e9e

Browse files
committed
Update
1 parent 8baf197 commit 3601e9e

File tree

3 files changed

+198
-34
lines changed

3 files changed

+198
-34
lines changed

gh-javadoc

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/bin/sh
2+
# Push javadoc files to a website hosted by github <http://pages.github.com/>.
3+
# Before executing this script, generate the javadoc files into build/docs/javadoc/.
4+
git checkout gh-pages || exit $?
5+
6+
# Clear out the old files:
7+
rm -rf javadoc/*
8+
# Replace them with new files and commit them:
9+
cp -pr build/docs/javadoc/* javadoc \
10+
&& git add javadoc \
11+
&& git commit -a -m "generated javadoc"
12+
ERROR=$?
13+
14+
git checkout master || exit $?
15+
[ $ERROR -eq 0 ] || exit $ERROR
16+
git push github master || exit $?
17+
git push github gh-pages || exit $?
+119
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
package rx.parse;
2+
3+
import rx.schedulers.*;
4+
import rx.Observable;
5+
import rx.functions.*;
6+
import rx.observables.*;
7+
8+
import com.parse.*;
9+
10+
import java.util.List;
11+
12+
public class ParseObservable<T extends ParseObject> {
13+
/*
14+
public class ParseUserObservable {
15+
Observable<ParseUser> find() {
16+
}
17+
}
18+
19+
public class PostObservable {
20+
Observable<Post> find() {
21+
}
22+
}
23+
24+
public class CommentObservable {
25+
Observable<Comment> find() {
26+
}
27+
}
28+
*/
29+
30+
private Class<T> mSubClass;
31+
32+
private ParseObservable(Class<T> subclass) {
33+
mSubClass = subclass;
34+
}
35+
36+
public static <T extends ParseObject> ParseObservable<T> getObservable(Class<T> subclass) {
37+
return new ParseObservable<T>(subclass);
38+
}
39+
40+
public ParseQuery<T> getQuery() {
41+
/* error: incompatible types: ParseQuery<ParseUser> cannot be converted to ParseQuery<T>
42+
if (mSubClass.equals(ParseUser.class)) {
43+
ParseQuery<ParseUser> query = ParseUser.getQuery();
44+
return query;
45+
}
46+
*/
47+
return ParseQuery.getQuery(mSubClass);
48+
}
49+
50+
public Observable<T> contains(String key, String value) {
51+
return find(getQuery().whereContains(key, value));
52+
}
53+
54+
public Observable<T> find() {
55+
return find(getQuery());
56+
}
57+
58+
public Observable<T> find(ParseQuery<T> query) {
59+
Observable<List<T>> list = Observable.create(sub -> {
60+
query.findInBackground(Callbacks.find((l, e) -> {
61+
if (e != null) {
62+
sub.onError(e);
63+
} else {
64+
sub.onNext(l);
65+
sub.onCompleted();
66+
}
67+
}));
68+
});
69+
return list.flatMap(l -> Observable.from(l));
70+
}
71+
72+
public Observable<Integer> count(ParseQuery<T> query) {
73+
return Observable.create(sub -> {
74+
query.countInBackground(Callbacks.count((c, e) -> {
75+
if (e != null) {
76+
sub.onError(e);
77+
} else {
78+
sub.onNext(new Integer(c));
79+
sub.onCompleted();
80+
}
81+
}));
82+
});
83+
}
84+
85+
public Observable<Integer> count() {
86+
return count(getQuery());
87+
}
88+
89+
public Observable<T> pin(T object) {
90+
return Observable.create(sub -> {
91+
object.pinInBackground(Callbacks.save(e -> {
92+
if (e != null) {
93+
sub.onError(e);
94+
} else {
95+
sub.onNext(object);
96+
sub.onCompleted();
97+
}
98+
}));
99+
});
100+
}
101+
102+
public Observable<T> pin(List<T> objects) {
103+
Observable<List<T>> list = Observable.create(sub -> {
104+
ParseObject.pinAllInBackground(objects, Callbacks.save(e -> {
105+
if (e != null) {
106+
sub.onError(e);
107+
} else {
108+
sub.onNext(objects);
109+
sub.onCompleted();
110+
}
111+
}));
112+
});
113+
return list.flatMap(l -> Observable.from(l));
114+
}
115+
116+
public Observable<T> listFromLocal() {
117+
return find(getQuery().fromLocalDatastore());
118+
}
119+
}

src/main/java/rx/parse/ParseUserObservable.java

+62-34
Original file line numberDiff line numberDiff line change
@@ -19,54 +19,73 @@
1919
*/
2020
public class ParseUserObservable {
2121
public static Observable<ParseUser> contains(String key, String value) {
22-
Observable<List<ParseUser>> list = Observable.create(sub -> {
23-
ParseQuery<ParseUser> query = ParseUser.getQuery();
24-
query.whereContains(key, value);
25-
query.findInBackground(Callbacks.find((users, e) -> {
26-
if (e != null) {
27-
sub.onError(e);
28-
} else {
29-
sub.onNext(users);
30-
sub.onCompleted();
31-
}
32-
}));
33-
});
34-
return list.flatMap(users -> Observable.from(users));
22+
return ParseObservable.getObservable(ParseUser.class).contains(key, value);
3523
}
3624

25+
/*
26+
ParseObjectObservable.<ParseUser>find();
27+
Observable<ParseUser> = ParseObjectObservable.find();
28+
29+
ParseUserObservable.find();
30+
PostObservable.find();
31+
CommentObservable.find();
32+
33+
public class ParseUserObservable {
34+
static Observable<ParseUser> find() {
35+
public static Observable<ParseUser> contains(String key, String value) {
36+
return ParseObservable.getObservable(ParseUser.class).contains(key, value);
37+
}
38+
}
39+
}
40+
41+
public class PostObservable {
42+
Observable<Post> find() {
43+
public static Observable<ParseUser> contains(String key, String value) {
44+
return ParseObservable.getObservable(ParseUser.class).contains(key, value);
45+
}
46+
}
47+
}
48+
49+
public class CommentObservable {
50+
Observable<Comment> find() {
51+
public static Observable<ParseUser> contains(String key, String value) {
52+
return ParseObservable.getObservable(ParseUser.class).contains(key, value);
53+
}
54+
}
55+
}
56+
*/
57+
3758
// TODO
3859
//public static Observable<ParseUser> contains(Pair... whereClauses) { // limit 10 whereClauses
3960

4061
// list(), all(), get()
4162
public static Observable<ParseUser> list() {
42-
Observable<List<ParseUser>> list = Observable.create(sub -> {
43-
ParseUser.getQuery().findInBackground(Callbacks.find((users, e) -> {
44-
if (e != null) {
45-
sub.onError(e);
46-
} else {
47-
sub.onNext(users);
48-
sub.onCompleted();
49-
}
50-
}));
51-
});
52-
return list.flatMap(users -> Observable.from(users));
63+
return find();
5364
}
5465

5566
public static Observable<ParseUser> listSkip(int skip) {
56-
return list(skip, -1);
67+
return listRange(skip, -1);
5768
}
5869

5970
public static Observable<ParseUser> listLimit(int limit) {
60-
return list(-1, limit);
71+
return listRange(-1, limit);
6172
}
6273

63-
public static Observable<ParseUser> list(int skip, int limit) {
64-
Observable<List<ParseUser>> userList = Observable.create(sub -> {
65-
ParseQuery<ParseUser> query = ParseUser.getQuery();
74+
public static Observable<ParseUser> listRange(int skip, int limit) {
75+
ParseQuery<ParseUser> query = ParseUser.getQuery();
76+
77+
if (skip >= 0) query.setSkip(skip);
78+
if (limit >= 0) query.setLimit(limit);
6679

67-
if (skip >= 0) query.setSkip(skip);
68-
if (limit >= 0) query.setLimit(limit);
80+
return find(query);
81+
}
82+
83+
public static Observable<ParseUser> find() {
84+
return find(ParseUser.getQuery());
85+
}
6986

87+
public static Observable<ParseUser> find(ParseQuery<ParseUser> query) {
88+
Observable<List<ParseUser>> list = Observable.create(sub -> {
7089
query.findInBackground(Callbacks.find((users, e) -> {
7190
if (e != null) {
7291
sub.onError(e);
@@ -76,12 +95,12 @@ public static Observable<ParseUser> list(int skip, int limit) {
7695
}
7796
}));
7897
});
79-
return userList.flatMap(users -> Observable.from(users));
98+
return list.flatMap(users -> Observable.from(users));
8099
}
81100

82-
public static Observable<Integer> count() {
101+
public static Observable<Integer> count(ParseQuery<ParseUser> query) {
83102
return Observable.create(sub -> {
84-
ParseUser.getQuery().countInBackground(Callbacks.count((c, e) -> {
103+
query.countInBackground(Callbacks.count((c, e) -> {
85104
if (e != null) {
86105
sub.onError(e);
87106
} else {
@@ -92,6 +111,15 @@ public static Observable<Integer> count() {
92111
});
93112
}
94113

114+
public static Observable<Integer> count() {
115+
return count(ParseUser.getQuery());
116+
}
117+
118+
/*
119+
public static Observable<ParseUser> all() {
120+
}
121+
*/
122+
95123
/*
96124
public static Observable<ParseUser> all() {
97125
return all(Observable.empty(), 0);

0 commit comments

Comments
 (0)