-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathBuilder.java
More file actions
73 lines (57 loc) · 2.01 KB
/
Builder.java
File metadata and controls
73 lines (57 loc) · 2.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
package com.pushbullet;
import com.pushbullet.entities.PushRequest;
import com.pushbullet.entities.PushResponse;
import com.pushbullet.entities.PushType;
public class Builder {
protected static PushbulletClient client;
protected Builder() {}
public static void registerClient(PushbulletClient client) {
Builder.client = client;
}
public static Builder pushbullet(PushbulletClient client) {
registerClient(client);
return pushbullet();
}
public static Builder pushbullet() {
return new Builder();
}
public TargetBuilder pushes() {
return new TargetBuilder(this);
}
public static class TargetBuilder {
private final Builder builder;
protected TargetBuilder(Builder builder) {
this.builder = builder;
}
public PushesBuilder channel(String tag) {
final PushRequest request = new PushRequest();
request.channel_tag = tag;
return new PushesBuilder(builder, request);
}
public PushesBuilder broadcast() {
return new PushesBuilder(builder, new PushRequest());
}
}
public static class PushesBuilder {
public static final String CONTEXT = "pushes";
private final Builder builder;
private final PushRequest request;
protected PushesBuilder(Builder builder, PushRequest request) {
this.builder = builder;
this.request = request;
}
public PushResponse note(String title, String body) {
request.type = PushType.note;
request.title = title;
request.body = body;
return client.post(CONTEXT, request, PushResponse.class);
}
public PushResponse link(String title, String body, String url) {
request.type = PushType.link;
request.title = title;
request.body = body;
request.url = url;
return client.post(CONTEXT, request, PushResponse.class);
}
}
}