Skip to content

Commit

Permalink
#930 parent 0.16
Browse files Browse the repository at this point in the history
  • Loading branch information
Yegor Bugayenko committed Nov 23, 2014
1 parent 66232b9 commit 14d0ed6
Show file tree
Hide file tree
Showing 45 changed files with 183 additions and 106 deletions.
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
<parent>
<groupId>com.jcabi</groupId>
<artifactId>jcabi</artifactId>
<version>1.15</version>
<version>1.16</version>
</parent>
<artifactId>jcabi-github</artifactId>
<version>1.0-SNAPSHOT</version>
Expand Down Expand Up @@ -86,7 +86,7 @@
<dependency>
<groupId>com.jcabi.incubator</groupId>
<artifactId>xembly</artifactId>
<version>0.17</version>
<version>0.19.1</version>
</dependency>
<dependency>
<groupId>com.jcabi</groupId>
Expand Down
5 changes: 3 additions & 2 deletions src/main/java/com/jcabi/github/Bulk.java
Original file line number Diff line number Diff line change
Expand Up @@ -94,10 +94,11 @@ public Bulk(
) {
if (items instanceof RtPagination) {
final RtPagination<T> page = RtPagination.class.cast(items);
final RtPagination.Mapping<T, JsonObject> mapping = page.mapping();
final RtValuePagination.Mapping<T, JsonObject> mapping =
page.mapping();
this.origin = new RtPagination<T>(
page.request(),
new RtPagination.Mapping<T, JsonObject>() {
new RtValuePagination.Mapping<T, JsonObject>() {
@Override
public T map(final JsonObject object) {
final T item = mapping.map(object);
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/jcabi/github/RtAssignees.java
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ final class RtAssignees implements Assignees {
public Iterable<User> iterate() {
return new RtPagination<User>(
this.request,
new RtPagination.Mapping<User, JsonObject>() {
new RtValuePagination.Mapping<User, JsonObject>() {
@Override
public User map(final JsonObject object) {
return new RtUser(
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/jcabi/github/RtCollaborators.java
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ public void remove(
public Iterable<User> iterate() {
return new RtPagination<User>(
this.request,
new RtPagination.Mapping<User, JsonObject>() {
new RtValuePagination.Mapping<User, JsonObject>() {
@Override
public User map(final JsonObject object) {
return RtCollaborators.this.owner.github().users()
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/jcabi/github/RtComments.java
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ public Comment post(@NotNull(message = "post text can't be NULL")
public Iterable<Comment> iterate() {
return new RtPagination<Comment>(
this.request,
new RtPagination.Mapping<Comment, JsonObject>() {
new RtValuePagination.Mapping<Comment, JsonObject>() {
@Override
public Comment map(final JsonObject object) {
return RtComments.this.get(object.getInt("id"));
Expand Down
11 changes: 5 additions & 6 deletions src/main/java/com/jcabi/github/RtCommits.java
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
@Immutable
@Loggable(Loggable.DEBUG)
@EqualsAndHashCode(of = {"entry", "request", "owner" })
public class RtCommits implements Commits {
public final class RtCommits implements Commits {
/**
* RESTful API entry point.
*/
Expand Down Expand Up @@ -83,29 +83,28 @@ public class RtCommits implements Commits {

@Override
@NotNull(message = "Repository is never NULL")
public final Repo repo() {
public Repo repo() {
return this.owner;
}

@Override
@NotNull(message = "tag is never NULL")
public final Commit create(
public Commit create(
@NotNull(message = "params can't be NULL") final JsonObject params
) throws IOException {
final Commit created = this.get(
return this.get(
this.request.method(Request.POST)
.body().set(params).back()
.fetch().as(RestResponse.class)
.assertStatus(HttpURLConnection.HTTP_CREATED)
.as(JsonResponse.class)
.json().readObject().getString("sha")
);
return created;
}

@Override
@NotNull(message = "tag is never NULL")
public final Commit get(
public Commit get(
@NotNull(message = "sha can't be NULL") final String sha
) {
return new RtCommit(this.entry, this.owner, sha);
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/jcabi/github/RtContents.java
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ public Iterable<Content> iterate(
return new RtPagination<Content>(
this.request.method(Request.GET)
.uri().path(path).queryParam("ref", ref).back(),
new RtPagination.Mapping<Content, JsonObject>() {
new RtValuePagination.Mapping<Content, JsonObject>() {
@Override
public Content map(final JsonObject object) {
return new RtContent(
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/jcabi/github/RtDeployKeys.java
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ public Repo repo() {
public Iterable<DeployKey> iterate() {
return new RtPagination<DeployKey>(
this.request,
new RtPagination.Mapping<DeployKey, JsonObject>() {
new RtValuePagination.Mapping<DeployKey, JsonObject>() {
@Override
public DeployKey map(final JsonObject object) {
//@checkstyle MultipleStringLiteralsCheck (1 line)
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/jcabi/github/RtForks.java
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ public Iterable<Fork> iterate(
@NotNull(message = "sort can't be NULL") final String sort) {
return new RtPagination<Fork>(
this.request.uri().queryParam("sort", sort).back(),
new RtPagination.Mapping<Fork, JsonObject>() {
new RtValuePagination.Mapping<Fork, JsonObject>() {
@Override
public Fork map(final JsonObject object) {
return RtForks.this.get(object.getInt(ID));
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/jcabi/github/RtGistComments.java
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ public GistComment post(
public Iterable<GistComment> iterate() {
return new RtPagination<GistComment>(
this.request,
new RtPagination.Mapping<GistComment, JsonObject>() {
new RtValuePagination.Mapping<GistComment, JsonObject>() {
@Override
public GistComment map(final JsonObject object) {
return RtGistComments.this.get(object.getInt("id"));
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/jcabi/github/RtGists.java
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ public Gist get(@NotNull(message = "gist name can't be NULL")
public Iterable<Gist> iterate() {
return new RtPagination<Gist>(
this.request,
new RtPagination.Mapping<Gist, JsonObject>() {
new RtValuePagination.Mapping<Gist, JsonObject>() {
@Override
public Gist map(final JsonObject object) {
return RtGists.this.get(object.getString("id"));
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/jcabi/github/RtHooks.java
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ public Repo repo() {
public Iterable<Hook> iterate() {
return new RtPagination<Hook>(
this.request,
new RtPagination.Mapping<Hook, JsonObject>() {
new RtValuePagination.Mapping<Hook, JsonObject>() {
@Override
public Hook map(final JsonObject object) {
// @checkstyle MultipleStringLiterals (1 line)
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/jcabi/github/RtIssue.java
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ public IssueLabels labels() {
public Iterable<Event> events() {
return new RtPagination<Event>(
this.request.uri().path("/events").back(),
new RtPagination.Mapping<Event, JsonObject>() {
new RtValuePagination.Mapping<Event, JsonObject>() {
@Override
public Event map(final JsonObject object) {
return new RtEvent(
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/jcabi/github/RtIssueLabels.java
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ public void clear() throws IOException {
public Iterable<Label> iterate() {
return new RtPagination<Label>(
this.request,
new RtPagination.Mapping<Label, JsonObject>() {
new RtValuePagination.Mapping<Label, JsonObject>() {
@Override
public Label map(final JsonObject object) {
return new RtLabel(
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/jcabi/github/RtIssues.java
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ public Iterable<Issue> iterate(
final Map<String, String> params) {
return new RtPagination<Issue>(
this.request.uri().queryParams(params).back(),
new RtPagination.Mapping<Issue, JsonObject>() {
new RtValuePagination.Mapping<Issue, JsonObject>() {
@Override
public Issue map(final JsonObject object) {
return RtIssues.this.get(object.getInt("number"));
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/jcabi/github/RtLabels.java
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ public void delete(@NotNull(message = "label name can't be NULL")
public Iterable<Label> iterate() {
return new RtPagination<Label>(
this.request,
new RtPagination.Mapping<Label, JsonObject>() {
new RtValuePagination.Mapping<Label, JsonObject>() {
@Override
public Label map(final JsonObject object) {
return new RtLabel(
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/jcabi/github/RtMilestones.java
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ public Iterable<Milestone> iterate(
final Map<String, String> params) {
return new RtPagination<Milestone>(
this.request.uri().queryParams(params).back(),
new RtPagination.Mapping<Milestone, JsonObject>() {
new RtValuePagination.Mapping<Milestone, JsonObject>() {
@Override
public Milestone map(final JsonObject object) {
return RtMilestones.this.get(object.getInt("number"));
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/jcabi/github/RtNotifications.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,5 +40,5 @@
* @see <a href="https://developer.github.com/v3/activity/notifications/">Notifications API</a>
*/
@Immutable
public class RtNotifications implements Notifications {
public final class RtNotifications implements Notifications {
}
4 changes: 2 additions & 2 deletions src/main/java/com/jcabi/github/RtOrganizations.java
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ public Organization get(
public Iterable<Organization> iterate() {
return new RtPagination<Organization>(
this.request,
new RtPagination.Mapping<Organization, JsonObject>() {
new RtValuePagination.Mapping<Organization, JsonObject>() {
@Override
public Organization map(final JsonObject object) {
return RtOrganizations.this.get(object.getString("login"));
Expand All @@ -123,7 +123,7 @@ public Iterable<Organization> iterate(
) {
return new RtPagination<Organization>(
this.entry.uri().path("/users").path(username).path("/orgs").back(),
new RtPagination.Mapping<Organization, JsonObject>() {
new RtValuePagination.Mapping<Organization, JsonObject>() {
@Override
public Organization map(final JsonObject object) {
return RtOrganizations.this.get(object.getString("login"));
Expand Down
38 changes: 34 additions & 4 deletions src/main/java/com/jcabi/github/RtPagination.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@

import com.jcabi.aspects.Immutable;
import com.jcabi.http.Request;
import java.util.Iterator;
import javax.json.JsonObject;
import javax.validation.constraints.NotNull;

Expand All @@ -55,19 +56,25 @@
* @since 0.11
*/
@Immutable
public final class RtPagination<T> extends RtValuePagination<T, JsonObject> {
public final class RtPagination<T> implements Iterable<T> {

/**
* Mapping that just copies JsonObject.
* @checkstyle LineLength (3 lines)
*/
public static final RtPagination.Mapping<JsonObject, JsonObject> COPYING =
new RtPagination.Mapping<JsonObject, JsonObject>() {
public static final RtValuePagination.Mapping<JsonObject, JsonObject> COPYING =
new RtValuePagination.Mapping<JsonObject, JsonObject>() {
@Override
public JsonObject map(final JsonObject value) {
return value;
}
};

/**
* Encapsulated paging.
*/
private final transient RtValuePagination<T, JsonObject> pages;

/**
* Public ctor.
* @param req Request
Expand All @@ -78,6 +85,29 @@ public RtPagination(
@NotNull(message = "mapping can't be NULL")
final RtValuePagination.Mapping<T, JsonObject> mpp
) {
super(req, mpp);
this.pages = new RtValuePagination<T, JsonObject>(req, mpp);
}

@Override
public Iterator<T> iterator() {
return this.pages.iterator();
}

/**
* Entry.
* @return Entry point
*/
@NotNull(message = "Request is never NULL")
public Request request() {
return this.pages.request();
}

/**
* Mapping.
* @return Mapping
*/
@NotNull(message = "map is never NULLs")
public RtValuePagination.Mapping<T, JsonObject> mapping() {
return this.pages.mapping();
}
}
2 changes: 1 addition & 1 deletion src/main/java/com/jcabi/github/RtPublicKeys.java
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ public User user() {
public Iterable<PublicKey> iterate() {
return new RtPagination<PublicKey>(
this.request,
new RtPagination.Mapping<PublicKey, JsonObject>() {
new RtValuePagination.Mapping<PublicKey, JsonObject>() {
@Override
public PublicKey map(final JsonObject object) {
return RtPublicKeys.this.get(object.getInt("id"));
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/jcabi/github/RtPull.java
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ public int number() {
public Iterable<Commit> commits() throws IOException {
return new RtPagination<Commit>(
this.request.uri().path("/commits").back(),
new RtPagination.Mapping<Commit, JsonObject>() {
new RtValuePagination.Mapping<Commit, JsonObject>() {
@Override
public Commit map(final JsonObject object) {
return new RtCommit(
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/jcabi/github/RtPullComments.java
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ public Iterable<PullComment> iterate(
) {
return new RtPagination<PullComment>(
this.request.uri().queryParams(params).back(),
new RtPagination.Mapping<PullComment, JsonObject>() {
new RtValuePagination.Mapping<PullComment, JsonObject>() {
@Override
public PullComment map(final JsonObject value) {
return RtPullComments.this.get(
Expand Down Expand Up @@ -135,7 +135,7 @@ public Iterable<PullComment> iterate(
.back();
return new RtPagination<PullComment>(
newreq.uri().queryParams(params).back(),
new RtPagination.Mapping<PullComment, JsonObject>() {
new RtValuePagination.Mapping<PullComment, JsonObject>() {
@Override
public PullComment map(final JsonObject value) {
return RtPullComments.this.get(
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/jcabi/github/RtPulls.java
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ public Iterable<Pull> iterate(@NotNull(message = "params can't be NULL")
final Map<String, String> params) {
return new RtPagination<Pull>(
this.request.uri().queryParams(params).back(),
new RtPagination.Mapping<Pull, JsonObject>() {
new RtValuePagination.Mapping<Pull, JsonObject>() {
@Override
public Pull map(final JsonObject object) {
return RtPulls.this.get(object.getInt("number"));
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/jcabi/github/RtReferences.java
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ public Reference get(
public Iterable<Reference> iterate() {
return new RtPagination<Reference>(
this.request,
new RtPagination.Mapping<Reference, JsonObject>() {
new RtValuePagination.Mapping<Reference, JsonObject>() {
@Override
public Reference map(final JsonObject object) {
return RtReferences.this.get(
Expand All @@ -141,7 +141,7 @@ public Iterable<Reference> iterate(
) {
return new RtPagination<Reference>(
this.request.uri().path(subnamespace).back(),
new RtPagination.Mapping<Reference, JsonObject>() {
new RtValuePagination.Mapping<Reference, JsonObject>() {
@Override
public Reference map(final JsonObject object) {
return RtReferences.this.get(
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/jcabi/github/RtReleaseAssets.java
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ public Iterable<ReleaseAsset> iterate() {
return new RtPagination<ReleaseAsset>(
this.request.uri().back()
.method(Request.GET),
new RtPagination.Mapping<ReleaseAsset, JsonObject>() {
new RtValuePagination.Mapping<ReleaseAsset, JsonObject>() {
@Override
public ReleaseAsset map(final JsonObject value) {
return RtReleaseAssets.this.get(
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/jcabi/github/RtReleases.java
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ public Repo repo() {
public Iterable<Release> iterate() {
return new RtPagination<Release>(
this.request,
new RtPagination.Mapping<Release, JsonObject>() {
new RtValuePagination.Mapping<Release, JsonObject>() {
@Override
public Release map(final JsonObject object) {
return new RtRelease(
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/jcabi/github/RtRepo.java
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ public Hooks hooks() {
public Iterable<Event> events() {
return new RtPagination<Event>(
this.request.uri().path("/issues/events").back(),
new RtPagination.Mapping<Event, JsonObject>() {
new RtValuePagination.Mapping<Event, JsonObject>() {
@Override
public Event map(final JsonObject object) {
return new RtEvent(
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/jcabi/github/RtRepoCommits.java
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ public Iterable<RepoCommit> iterate(
) {
return new RtPagination<RepoCommit>(
this.request.uri().queryParams(params).back(),
new RtPagination.Mapping<RepoCommit, JsonObject>() {
new RtValuePagination.Mapping<RepoCommit, JsonObject>() {
@Override
public RepoCommit map(final JsonObject value) {
return RtRepoCommits.this.get(value.getString("sha"));
Expand Down
Loading

0 comments on commit 14d0ed6

Please sign in to comment.