-
Notifications
You must be signed in to change notification settings - Fork 775
Expand file tree
/
Copy pathGHArtifactsIterable.java
More file actions
130 lines (111 loc) · 3.41 KB
/
GHArtifactsIterable.java
File metadata and controls
130 lines (111 loc) · 3.41 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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package org.kohsuke.github;
import java.util.Iterator;
import javax.annotation.Nonnull;
// TODO: Auto-generated Javadoc
/**
* Iterable for artifacts listing.
*/
class GHArtifactsIterable extends PagedIterable<GHArtifact> {
private final transient GHRepository owner;
private final GitHubRequest request;
private GHArtifactsPage result;
/**
* Instantiates a new GH artifacts iterable.
*
* @param owner
* the owner
* @param requestBuilder
* the request builder
*/
public GHArtifactsIterable(GHRepository owner, GitHubRequest.Builder<?> requestBuilder) {
this.owner = owner;
this.request = requestBuilder.build();
}
@Nonnull
@Override
public Paginator<GHArtifact> _paginator(int pageSize, int startPage) {
return new Paginator<>(
adapt(GitHubPaginator
.create(owner.root().getClient(), GHArtifactsPage.class, request, pageSize, startPage)),
null);
}
/**
* Iterator.
*
* @param pageSize
* the page size
* @return the paged iterator
*/
@Nonnull
@Override
public PagedIterator<GHArtifact> _iterator(int pageSize) {
return new PagedIterator<>(
adapt(GitHubPageIterator.create(owner.root().getClient(), GHArtifactsPage.class, request, pageSize)),
null);
}
/**
* Adapt.
*
* @param base
* the base
* @return the iterator
*/
protected Iterator<GHArtifact[]> adapt(final Iterator<GHArtifactsPage> base) {
return new Iterator<GHArtifact[]>() {
public boolean hasNext() {
return base.hasNext();
}
public GHArtifact[] next() {
GHArtifactsPage v = base.next();
if (result == null) {
result = v;
}
return v.getArtifacts(owner);
}
};
}
protected NavigablePageIterator<GHArtifact[]> adapt(final NavigablePageIterator<GHArtifactsPage> base) {
return new NavigablePageIterator<GHArtifact[]>() {
@Override
public boolean hasPrevious() {
return base.hasPrevious();
}
@Override
public GHArtifact[] previous() {
return base.previous().getArtifacts(owner);
}
@Override
public GHArtifact[] first() {
return base.first().getArtifacts(owner);
}
@Override
public GHArtifact[] last() {
return base.last().getArtifacts(owner);
}
@Override
public int totalCount() {
return base.totalCount();
}
@Override
public int currentPage() {
return base.currentPage();
}
@Override
public boolean hasNext() {
return base.hasNext();
}
@Override
public GHArtifact[] next() {
return base.next().getArtifacts(owner);
}
@Override
public GHArtifact[] jumpToPage(int page) {
return base.jumpToPage(page).getArtifacts(owner);
}
@Override
public void refresh() {
base.refresh();
}
};
}
}