You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2013/11/14 12:23:07 UTC
[04/13] Fix code style of the cloudsigma2 provider.
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/0d70c84a/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/functions/internal/ParseServers.java
----------------------------------------------------------------------
diff --git a/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/functions/internal/ParseServers.java b/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/functions/internal/ParseServers.java
index 4de20fa..2803c3b 100644
--- a/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/functions/internal/ParseServers.java
+++ b/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/functions/internal/ParseServers.java
@@ -38,37 +38,37 @@ import java.util.List;
@Singleton
public class ParseServers extends ParseJson<ParseServers.Servers> {
- static class Servers extends PaginatedCollection<Server>{
+ static class Servers extends PaginatedCollection<Server> {
- @ConstructorProperties({"objects", "meta"})
- public Servers(Iterable<Server> objects, PaginationOptions paginationOptions) {
- super(objects, paginationOptions);
- }
- }
+ @ConstructorProperties({"objects", "meta"})
+ public Servers(Iterable<Server> objects, PaginationOptions paginationOptions) {
+ super(objects, paginationOptions);
+ }
+ }
- @Inject
- public ParseServers(Json json) {
- super(json, TypeLiteral.get(Servers.class));
- }
+ @Inject
+ public ParseServers(Json json) {
+ super(json, TypeLiteral.get(Servers.class));
+ }
- public static class ToPagedIterable extends ArgsToPagedIterable<Server, ToPagedIterable> {
+ public static class ToPagedIterable extends ArgsToPagedIterable<Server, ToPagedIterable> {
- private CloudSigma2Api api;
+ private CloudSigma2Api api;
- @Inject
- public ToPagedIterable(CloudSigma2Api api) {
- this.api = api;
- }
+ @Inject
+ public ToPagedIterable(CloudSigma2Api api) {
+ this.api = api;
+ }
- @Override
- protected Function<Object, IterableWithMarker<Server>> markerToNextForArgs(List<Object> args) {
- return new Function<Object, IterableWithMarker<Server>>() {
- @Override
- public IterableWithMarker<Server> apply(Object input) {
- PaginationOptions paginationOptions = PaginationOptions.class.cast(input);
- return api.listServers(paginationOptions);
- }
- };
- }
- }
+ @Override
+ protected Function<Object, IterableWithMarker<Server>> markerToNextForArgs(List<Object> args) {
+ return new Function<Object, IterableWithMarker<Server>>() {
+ @Override
+ public IterableWithMarker<Server> apply(Object input) {
+ PaginationOptions paginationOptions = PaginationOptions.class.cast(input);
+ return api.listServers(paginationOptions);
+ }
+ };
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/0d70c84a/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/functions/internal/ParseSubscriptions.java
----------------------------------------------------------------------
diff --git a/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/functions/internal/ParseSubscriptions.java b/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/functions/internal/ParseSubscriptions.java
index c8d4895..847f281 100644
--- a/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/functions/internal/ParseSubscriptions.java
+++ b/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/functions/internal/ParseSubscriptions.java
@@ -37,59 +37,59 @@ import java.util.List;
* @author Vladimir Shevchenko
*/
@Singleton
-public class ParseSubscriptions extends ParseJson<ParseSubscriptions.Subscriptions>{
- static class Subscriptions extends PaginatedCollection<Subscription> {
+public class ParseSubscriptions extends ParseJson<ParseSubscriptions.Subscriptions> {
+ static class Subscriptions extends PaginatedCollection<Subscription> {
- @ConstructorProperties({"objects", "meta"})
- public Subscriptions(Iterable<Subscription> objects, PaginationOptions paginationOptions) {
- super(objects, paginationOptions);
- }
- }
+ @ConstructorProperties({"objects", "meta"})
+ public Subscriptions(Iterable<Subscription> objects, PaginationOptions paginationOptions) {
+ super(objects, paginationOptions);
+ }
+ }
- @Inject
- public ParseSubscriptions(Json json) {
- super(json, TypeLiteral.get(Subscriptions.class));
- }
+ @Inject
+ public ParseSubscriptions(Json json) {
+ super(json, TypeLiteral.get(Subscriptions.class));
+ }
- public static class ToPagedIterable extends ArgsToPagedIterable<Subscription, ToPagedIterable> {
+ public static class ToPagedIterable extends ArgsToPagedIterable<Subscription, ToPagedIterable> {
- private CloudSigma2Api api;
+ private CloudSigma2Api api;
- @Inject
- public ToPagedIterable(CloudSigma2Api api) {
- this.api = api;
- }
+ @Inject
+ public ToPagedIterable(CloudSigma2Api api) {
+ this.api = api;
+ }
- @Override
- protected Function<Object, IterableWithMarker<Subscription>> markerToNextForArgs(List<Object> args) {
- return new Function<Object, IterableWithMarker<Subscription>>() {
- @Override
- public IterableWithMarker<Subscription> apply(Object input) {
- PaginationOptions paginationOptions = PaginationOptions.class.cast(input);
- return api.listSubscriptions(paginationOptions);
- }
- };
- }
- }
+ @Override
+ protected Function<Object, IterableWithMarker<Subscription>> markerToNextForArgs(List<Object> args) {
+ return new Function<Object, IterableWithMarker<Subscription>>() {
+ @Override
+ public IterableWithMarker<Subscription> apply(Object input) {
+ PaginationOptions paginationOptions = PaginationOptions.class.cast(input);
+ return api.listSubscriptions(paginationOptions);
+ }
+ };
+ }
+ }
- public static class ToPagedIterableCalculator extends ArgsToPagedIterable<Subscription, ToPagedIterable> {
+ public static class ToPagedIterableCalculator extends ArgsToPagedIterable<Subscription, ToPagedIterable> {
- private CloudSigma2Api api;
+ private CloudSigma2Api api;
- @Inject
- public ToPagedIterableCalculator(CloudSigma2Api api) {
- this.api = api;
- }
+ @Inject
+ public ToPagedIterableCalculator(CloudSigma2Api api) {
+ this.api = api;
+ }
- @Override
- protected Function<Object, IterableWithMarker<Subscription>> markerToNextForArgs(List<Object> args) {
- return new Function<Object, IterableWithMarker<Subscription>>() {
- @Override
- public IterableWithMarker<Subscription> apply(@Nullable Object input) {
- PaginationOptions paginationOptions = PaginationOptions.class.cast(input);
- return api.listSubscriptionsCalculator(paginationOptions);
- }
- };
- }
- }
+ @Override
+ protected Function<Object, IterableWithMarker<Subscription>> markerToNextForArgs(List<Object> args) {
+ return new Function<Object, IterableWithMarker<Subscription>>() {
+ @Override
+ public IterableWithMarker<Subscription> apply(@Nullable Object input) {
+ PaginationOptions paginationOptions = PaginationOptions.class.cast(input);
+ return api.listSubscriptionsCalculator(paginationOptions);
+ }
+ };
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/0d70c84a/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/functions/internal/ParseTags.java
----------------------------------------------------------------------
diff --git a/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/functions/internal/ParseTags.java b/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/functions/internal/ParseTags.java
index 5757fa1..b6fa41b 100644
--- a/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/functions/internal/ParseTags.java
+++ b/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/functions/internal/ParseTags.java
@@ -37,58 +37,58 @@ import java.util.List;
*/
@Singleton
public class ParseTags extends ParseJson<ParseTags.Tags> {
- static class Tags extends PaginatedCollection<Tag> {
+ static class Tags extends PaginatedCollection<Tag> {
- @ConstructorProperties({"objects", "meta"})
- public Tags(Iterable<Tag> objects, PaginationOptions paginationOptions) {
- super(objects, paginationOptions);
- }
- }
+ @ConstructorProperties({"objects", "meta"})
+ public Tags(Iterable<Tag> objects, PaginationOptions paginationOptions) {
+ super(objects, paginationOptions);
+ }
+ }
- @Inject
- public ParseTags(Json json) {
- super(json, TypeLiteral.get(Tags.class));
- }
+ @Inject
+ public ParseTags(Json json) {
+ super(json, TypeLiteral.get(Tags.class));
+ }
- public static class ToPagedIterable extends ArgsToPagedIterable<Tag, ToPagedIterable> {
+ public static class ToPagedIterable extends ArgsToPagedIterable<Tag, ToPagedIterable> {
- private CloudSigma2Api api;
+ private CloudSigma2Api api;
- @Inject
- public ToPagedIterable(CloudSigma2Api api) {
- this.api = api;
- }
+ @Inject
+ public ToPagedIterable(CloudSigma2Api api) {
+ this.api = api;
+ }
- @Override
- protected Function<Object, IterableWithMarker<Tag>> markerToNextForArgs(List<Object> args) {
- return new Function<Object, IterableWithMarker<Tag>>() {
- @Override
- public IterableWithMarker<Tag> apply(Object input) {
- PaginationOptions paginationOptions = PaginationOptions.class.cast(input);
- return api.listTags(paginationOptions);
- }
- };
- }
- }
+ @Override
+ protected Function<Object, IterableWithMarker<Tag>> markerToNextForArgs(List<Object> args) {
+ return new Function<Object, IterableWithMarker<Tag>>() {
+ @Override
+ public IterableWithMarker<Tag> apply(Object input) {
+ PaginationOptions paginationOptions = PaginationOptions.class.cast(input);
+ return api.listTags(paginationOptions);
+ }
+ };
+ }
+ }
- public static class ToPagedIterableInfo extends ArgsToPagedIterable<Tag, ToPagedIterable> {
+ public static class ToPagedIterableInfo extends ArgsToPagedIterable<Tag, ToPagedIterable> {
- private CloudSigma2Api api;
+ private CloudSigma2Api api;
- @Inject
- public ToPagedIterableInfo(CloudSigma2Api api) {
- this.api = api;
- }
+ @Inject
+ public ToPagedIterableInfo(CloudSigma2Api api) {
+ this.api = api;
+ }
- @Override
- protected Function<Object, IterableWithMarker<Tag>> markerToNextForArgs(List<Object> args) {
- return new Function<Object, IterableWithMarker<Tag>>() {
- @Override
- public IterableWithMarker<Tag> apply(Object input) {
- PaginationOptions paginationOptions = PaginationOptions.class.cast(input);
- return api.listTagsInfo(paginationOptions);
- }
- };
- }
- }
+ @Override
+ protected Function<Object, IterableWithMarker<Tag>> markerToNextForArgs(List<Object> args) {
+ return new Function<Object, IterableWithMarker<Tag>>() {
+ @Override
+ public IterableWithMarker<Tag> apply(Object input) {
+ PaginationOptions paginationOptions = PaginationOptions.class.cast(input);
+ return api.listTagsInfo(paginationOptions);
+ }
+ };
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/0d70c84a/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/functions/internal/ParseTransactions.java
----------------------------------------------------------------------
diff --git a/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/functions/internal/ParseTransactions.java b/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/functions/internal/ParseTransactions.java
index 4d51701..9ae885d 100644
--- a/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/functions/internal/ParseTransactions.java
+++ b/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/functions/internal/ParseTransactions.java
@@ -37,37 +37,37 @@ import java.util.List;
*/
@Singleton
public class ParseTransactions extends ParseJson<ParseTransactions.Transactions> {
- static class Transactions extends PaginatedCollection<Transaction> {
+ static class Transactions extends PaginatedCollection<Transaction> {
- @ConstructorProperties({"objects", "meta"})
- public Transactions(Iterable<Transaction> objects, PaginationOptions paginationOptions) {
- super(objects, paginationOptions);
- }
- }
+ @ConstructorProperties({"objects", "meta"})
+ public Transactions(Iterable<Transaction> objects, PaginationOptions paginationOptions) {
+ super(objects, paginationOptions);
+ }
+ }
- @Inject
- public ParseTransactions(Json json) {
- super(json, TypeLiteral.get(Transactions.class));
- }
+ @Inject
+ public ParseTransactions(Json json) {
+ super(json, TypeLiteral.get(Transactions.class));
+ }
- public static class ToPagedIterable extends ArgsToPagedIterable<Transaction, ToPagedIterable> {
+ public static class ToPagedIterable extends ArgsToPagedIterable<Transaction, ToPagedIterable> {
- private CloudSigma2Api api;
+ private CloudSigma2Api api;
- @Inject
- public ToPagedIterable(CloudSigma2Api api) {
- this.api = api;
- }
+ @Inject
+ public ToPagedIterable(CloudSigma2Api api) {
+ this.api = api;
+ }
- @Override
- protected Function<Object, IterableWithMarker<Transaction>> markerToNextForArgs(List<Object> args) {
- return new Function<Object, IterableWithMarker<Transaction>>() {
- @Override
- public IterableWithMarker<Transaction> apply(Object input) {
- PaginationOptions paginationOptions = PaginationOptions.class.cast(input);
- return api.listTransactions(paginationOptions);
- }
- };
- }
- }
+ @Override
+ protected Function<Object, IterableWithMarker<Transaction>> markerToNextForArgs(List<Object> args) {
+ return new Function<Object, IterableWithMarker<Transaction>>() {
+ @Override
+ public IterableWithMarker<Transaction> apply(Object input) {
+ PaginationOptions paginationOptions = PaginationOptions.class.cast(input);
+ return api.listTransactions(paginationOptions);
+ }
+ };
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/0d70c84a/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/functions/internal/ParseVLANs.java
----------------------------------------------------------------------
diff --git a/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/functions/internal/ParseVLANs.java b/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/functions/internal/ParseVLANs.java
index c04d22c..acf084b 100644
--- a/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/functions/internal/ParseVLANs.java
+++ b/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/functions/internal/ParseVLANs.java
@@ -37,58 +37,58 @@ import java.util.List;
*/
@Singleton
public class ParseVLANs extends ParseJson<ParseVLANs.VLANs> {
- static class VLANs extends PaginatedCollection<VLANInfo> {
+ static class VLANs extends PaginatedCollection<VLANInfo> {
- @ConstructorProperties({"objects", "meta"})
- public VLANs(Iterable<VLANInfo> objects, PaginationOptions paginationOptions) {
- super(objects, paginationOptions);
- }
- }
+ @ConstructorProperties({"objects", "meta"})
+ public VLANs(Iterable<VLANInfo> objects, PaginationOptions paginationOptions) {
+ super(objects, paginationOptions);
+ }
+ }
- @Inject
- public ParseVLANs(Json json) {
- super(json, TypeLiteral.get(VLANs.class));
- }
+ @Inject
+ public ParseVLANs(Json json) {
+ super(json, TypeLiteral.get(VLANs.class));
+ }
- public static class ToPagedIterable extends ArgsToPagedIterable<VLANInfo, ToPagedIterable> {
+ public static class ToPagedIterable extends ArgsToPagedIterable<VLANInfo, ToPagedIterable> {
- private CloudSigma2Api api;
+ private CloudSigma2Api api;
- @Inject
- public ToPagedIterable(CloudSigma2Api api) {
- this.api = api;
- }
+ @Inject
+ public ToPagedIterable(CloudSigma2Api api) {
+ this.api = api;
+ }
- @Override
- protected Function<Object, IterableWithMarker<VLANInfo>> markerToNextForArgs(List<Object> args) {
- return new Function<Object, IterableWithMarker<VLANInfo>>() {
- @Override
- public IterableWithMarker<VLANInfo> apply(Object input) {
- PaginationOptions paginationOptions = PaginationOptions.class.cast(input);
- return api.listVLANs(paginationOptions);
- }
- };
- }
- }
+ @Override
+ protected Function<Object, IterableWithMarker<VLANInfo>> markerToNextForArgs(List<Object> args) {
+ return new Function<Object, IterableWithMarker<VLANInfo>>() {
+ @Override
+ public IterableWithMarker<VLANInfo> apply(Object input) {
+ PaginationOptions paginationOptions = PaginationOptions.class.cast(input);
+ return api.listVLANs(paginationOptions);
+ }
+ };
+ }
+ }
- public static class ToPagedIterableInfo extends ArgsToPagedIterable<VLANInfo, ToPagedIterable> {
+ public static class ToPagedIterableInfo extends ArgsToPagedIterable<VLANInfo, ToPagedIterable> {
- private CloudSigma2Api api;
+ private CloudSigma2Api api;
- @Inject
- public ToPagedIterableInfo(CloudSigma2Api api) {
- this.api = api;
- }
+ @Inject
+ public ToPagedIterableInfo(CloudSigma2Api api) {
+ this.api = api;
+ }
- @Override
- protected Function<Object, IterableWithMarker<VLANInfo>> markerToNextForArgs(List<Object> args) {
- return new Function<Object, IterableWithMarker<VLANInfo>>() {
- @Override
- public IterableWithMarker<VLANInfo> apply(Object input) {
- PaginationOptions paginationOptions = PaginationOptions.class.cast(input);
- return api.listVLANInfo(paginationOptions);
- }
- };
- }
- }
+ @Override
+ protected Function<Object, IterableWithMarker<VLANInfo>> markerToNextForArgs(List<Object> args) {
+ return new Function<Object, IterableWithMarker<VLANInfo>>() {
+ @Override
+ public IterableWithMarker<VLANInfo> apply(Object input) {
+ PaginationOptions paginationOptions = PaginationOptions.class.cast(input);
+ return api.listVLANInfo(paginationOptions);
+ }
+ };
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/0d70c84a/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/handlers/CloudSigmaErrorHandler.java
----------------------------------------------------------------------
diff --git a/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/handlers/CloudSigmaErrorHandler.java b/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/handlers/CloudSigmaErrorHandler.java
index 50b7f62..e97685d 100644
--- a/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/handlers/CloudSigmaErrorHandler.java
+++ b/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/handlers/CloudSigmaErrorHandler.java
@@ -33,13 +33,12 @@ import java.io.IOException;
/**
* This will parse and set an appropriate exception on the command object.
- *
+ * <p/>
* <p/>
* Errors are returned with an appropriate HTTP status code, an X-Elastic- Error header specifying
* the error type, and a text description in the HTTP body.
- *
+ *
* @author Vladimir Shevchenko
- *
*/
@Singleton
public class CloudSigmaErrorHandler implements HttpErrorHandler {
@@ -55,32 +54,32 @@ public class CloudSigmaErrorHandler implements HttpErrorHandler {
message = message != null ? message : String.format("%s -> %s", command.getCurrentRequest().getRequestLine(),
response.getStatusLine());
switch (response.getStatusCode()) {
- case 400:
- if ((command.getCurrentRequest().getEndpoint().getPath().endsWith("/info"))
- || (message != null && message.indexOf("could not be found") != -1))
- exception = new ResourceNotFoundException(message, exception);
- else if (message != null && message.indexOf("currently in use") != -1)
+ case 400:
+ if ((command.getCurrentRequest().getEndpoint().getPath().endsWith("/info"))
+ || (message != null && message.indexOf("could not be found") != -1))
+ exception = new ResourceNotFoundException(message, exception);
+ else if (message != null && message.indexOf("currently in use") != -1)
+ exception = new IllegalStateException(message, exception);
+ else
+ exception = new IllegalArgumentException(message, exception);
+ break;
+ case 401:
+ exception = new AuthorizationException(message, exception);
+ break;
+ case 402:
exception = new IllegalStateException(message, exception);
- else
+ break;
+ case 404:
+ if (!command.getCurrentRequest().getMethod().equals("DELETE")) {
+ exception = new ResourceNotFoundException(message, exception);
+ }
+ break;
+ case 405:
exception = new IllegalArgumentException(message, exception);
- break;
- case 401:
- exception = new AuthorizationException(message, exception);
- break;
- case 402:
- exception = new IllegalStateException(message, exception);
- break;
- case 404:
- if (!command.getCurrentRequest().getMethod().equals("DELETE")) {
- exception = new ResourceNotFoundException(message, exception);
- }
- break;
- case 405:
- exception = new IllegalArgumentException(message, exception);
- break;
- case 409:
- exception = new IllegalStateException(message, exception);
- break;
+ break;
+ case 409:
+ exception = new IllegalStateException(message, exception);
+ break;
}
} finally {
Closeables.closeQuietly(response.getPayload());
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/0d70c84a/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/options/PaginationOptions.java
----------------------------------------------------------------------
diff --git a/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/options/PaginationOptions.java b/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/options/PaginationOptions.java
index 13e4463..46282f7 100644
--- a/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/options/PaginationOptions.java
+++ b/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/options/PaginationOptions.java
@@ -26,92 +26,92 @@ import java.beans.ConstructorProperties;
*/
public class PaginationOptions extends BaseHttpRequestOptions {
- public static class Builder{
- private int limit = PaginationOptions.DEFAULT_LIMIT;
- private int offset = 0;
-
- public Builder limit(int limit){
- this.limit = limit;
- return this;
- }
-
- public Builder offset(int offset){
- this.offset = offset;
- return this;
- }
-
- public PaginationOptions build() {
- if (limit < 0) {
- limit = PaginationOptions.DEFAULT_LIMIT;
- }
-
- if (offset < 0) {
- offset = 0;
- }
-
- PaginationOptions paginationOptions = new PaginationOptions(limit, offset, 0);
- paginationOptions.queryParameters.put("limit", String.valueOf(limit));
- paginationOptions.queryParameters.put("offset", String.valueOf(offset));
- return paginationOptions;
- }
- }
-
- public static final int DEFAULT_LIMIT = 20;
-
- private final int limit;
- private final int offset;
- @Named("total_count")
- private final int totalCount;
-
- @ConstructorProperties({"limit", "offset", "total_count"})
- public PaginationOptions(int limit, int offset, int totalCount) {
- this.limit = limit;
- this.offset = offset;
- this.totalCount = totalCount;
- }
-
- public int getTotalCount() {
- return totalCount;
- }
-
- public int getOffset() {
- return offset;
- }
-
- public int getLimit() {
- return limit;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (!(o instanceof PaginationOptions)) return false;
- if (!super.equals(o)) return false;
-
- PaginationOptions that = (PaginationOptions) o;
-
- if (limit != that.limit) return false;
- if (offset != that.offset) return false;
- if (totalCount != that.totalCount) return false;
-
- return true;
- }
-
- @Override
- public int hashCode() {
- int result = super.hashCode();
- result = 31 * result + limit;
- result = 31 * result + offset;
- result = 31 * result + totalCount;
- return result;
- }
-
- @Override
- public String toString() {
- return "PaginationOptions{" +
- "limit=" + limit +
- ", offset=" + offset +
- ", totalCount=" + totalCount +
- "} " + super.toString();
- }
+ public static class Builder {
+ private int limit = PaginationOptions.DEFAULT_LIMIT;
+ private int offset = 0;
+
+ public Builder limit(int limit) {
+ this.limit = limit;
+ return this;
+ }
+
+ public Builder offset(int offset) {
+ this.offset = offset;
+ return this;
+ }
+
+ public PaginationOptions build() {
+ if (limit < 0) {
+ limit = PaginationOptions.DEFAULT_LIMIT;
+ }
+
+ if (offset < 0) {
+ offset = 0;
+ }
+
+ PaginationOptions paginationOptions = new PaginationOptions(limit, offset, 0);
+ paginationOptions.queryParameters.put("limit", String.valueOf(limit));
+ paginationOptions.queryParameters.put("offset", String.valueOf(offset));
+ return paginationOptions;
+ }
+ }
+
+ public static final int DEFAULT_LIMIT = 20;
+
+ private final int limit;
+ private final int offset;
+ @Named("total_count")
+ private final int totalCount;
+
+ @ConstructorProperties({"limit", "offset", "total_count"})
+ public PaginationOptions(int limit, int offset, int totalCount) {
+ this.limit = limit;
+ this.offset = offset;
+ this.totalCount = totalCount;
+ }
+
+ public int getTotalCount() {
+ return totalCount;
+ }
+
+ public int getOffset() {
+ return offset;
+ }
+
+ public int getLimit() {
+ return limit;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof PaginationOptions)) return false;
+ if (!super.equals(o)) return false;
+
+ PaginationOptions that = (PaginationOptions) o;
+
+ if (limit != that.limit) return false;
+ if (offset != that.offset) return false;
+ if (totalCount != that.totalCount) return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = super.hashCode();
+ result = 31 * result + limit;
+ result = 31 * result + offset;
+ result = 31 * result + totalCount;
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ return "PaginationOptions{" +
+ "limit=" + limit +
+ ", offset=" + offset +
+ ", totalCount=" + totalCount +
+ "} " + super.toString();
+ }
}