
com.vendasta.sales.v1.internal.PagedRequestOptions Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sales.v1 Show documentation
Show all versions of sales.v1 Show documentation
Java SDK for service sales
The newest version!
package com.vendasta.sales.v1.internal;
import java.util.List;
import java.util.ArrayList;
import java.util.Date;
import java.util.Map;
import java.util.HashMap;
import java.util.Collections;
import java.util.Arrays;
import org.apache.commons.lang3.StringUtils;
import com.vendasta.sales.v1.generated.ApiProto;
/**
* To provide options for the paged request
**/
public final class PagedRequestOptions {
private final String cursor;
private final long pageSize;
private PagedRequestOptions (
final String cursor,
final long pageSize)
{
this.cursor = cursor;
this.pageSize = pageSize;
}
/**
* cursor can be passed to retrieve the next page of results keyed by the cursor
* @return The final value of cursor on the object
**/
public String getCursor() {
return this.cursor;
}
/**
* page_size specifies the number of items to return in the next page
* @return The final value of pageSize on the object
**/
public long getPageSize() {
return this.pageSize;
}
public static class Builder {
private String cursor;
private long pageSize;
public Builder() {
this.cursor = "";
this.pageSize = 0;
}
/**
* Adds a value to the builder for cursor
* @param cursor Value to assign to the mutable Builder
* @return The Builder instance so that call chaining works
**/
public Builder setCursor(String cursor) {
this.cursor = cursor;
return this;
}
/**
* Adds a value to the builder for pageSize
* @param pageSize Value to assign to the mutable Builder
* @return The Builder instance so that call chaining works
**/
public Builder setPageSize(long pageSize) {
this.pageSize = pageSize;
return this;
}
/**
* Takes the configuration in the mutable Builder and uses it to instantiate a final instance
* of the PagedRequestOptions class
* @return The instantiated final PagedRequestOptions
**/
public PagedRequestOptions build() {
return new PagedRequestOptions(
this.cursor,
this.pageSize);
}
}
/**
* Returns a Builder for PagedRequestOptions, which is a mutable representation of the object. Once the
* client has built up an object they can then create an immutable PagedRequestOptions object using the
* build function.
* @return A fresh Builder instance with no values set
**/
public static Builder newBuilder() {
return new Builder();
}
/**
* Provides a human-readable representation of this object. Useful for debugging.
* @return A string representation of the PagedRequestOptions instance
**/
public String toString() {
String result = "PagedRequestOptions\n";
result += "-> cursor: (String)"
+ StringUtils.join("\n ", Arrays.asList(String.valueOf(this.cursor).split("\n"))) + "\n";
result += "-> pageSize: (long)"
+ StringUtils.join("\n ", Arrays.asList(String.valueOf(this.pageSize).split("\n"))) + "\n";
return result;
}
/**
* Allows for simple conversion between the low-level generated protobuf object to
* PagedRequestOptions, which is much more usable.
* @return An instance of PagedRequestOptions representing the input proto object
**/
public static PagedRequestOptions fromProto(ApiProto.PagedRequestOptions proto) {
PagedRequestOptions out = null;
if (proto != null) {
PagedRequestOptions.Builder outBuilder = PagedRequestOptions.newBuilder()
.setCursor(proto.getCursor())
.setPageSize(proto.getPageSize());
out = outBuilder.build();
}
return out;
}
/**
* Convenience method for handling lists of proto objects. It calls .fromProto on each one
* and returns a list of the converted results.
* @return A list of PagedRequestOptions instances representing the input proto objects
**/
public static List fromProtos(List protos) {
List out = new ArrayList();
for(ApiProto.PagedRequestOptions proto : protos) {
out.add(PagedRequestOptions.fromProto(proto));
}
return out;
}
/**
* Allows for simple conversion of an object to the low-level generated protobuf object.
* @return An instance of ApiProto.PagedRequestOptions which is a proto object ready for wire transmission
**/
public ApiProto.PagedRequestOptions toProto() {
PagedRequestOptions obj = this;
ApiProto.PagedRequestOptions.Builder outBuilder = ApiProto.PagedRequestOptions.newBuilder();
outBuilder.setCursor(obj.getCursor());
outBuilder.setPageSize(obj.getPageSize());
return outBuilder.build();
}
/**
* Convenience method for handling lists of objects. It calls .toProto on each one and
* returns a list of the converted results.
* @return A list of ApiProto.PagedRequestOptions instances representing the input objects.
*/
public static List toProtos(List objects) {
List out = new ArrayList();
if(objects != null) {
for (PagedRequestOptions obj : objects) {
out.add(obj!=null?obj.toProto():null);
}
}
return out;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy