
com.vendasta.sales.v1.internal.BusinessSearchRequest 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;
/**
*
**/
public final class BusinessSearchRequest {
private final BusinessSearchFilters filters;
private final PagedRequestOptions pagingOptions;
private final BusinessSearchSortOptions sortOptions;
private BusinessSearchRequest (
final BusinessSearchFilters filters,
final PagedRequestOptions pagingOptions,
final BusinessSearchSortOptions sortOptions)
{
this.filters = filters;
this.pagingOptions = pagingOptions;
this.sortOptions = sortOptions;
}
/**
*
* @return The final value of filters on the object
**/
public BusinessSearchFilters getFilters() {
return this.filters;
}
/**
* Options for how to page the response for this request
* @return The final value of pagingOptions on the object
**/
public PagedRequestOptions getPagingOptions() {
return this.pagingOptions;
}
/**
*
* @return The final value of sortOptions on the object
**/
public BusinessSearchSortOptions getSortOptions() {
return this.sortOptions;
}
public static class Builder {
private BusinessSearchFilters filters;
private PagedRequestOptions pagingOptions;
private BusinessSearchSortOptions sortOptions;
public Builder() {
this.filters = null;
this.pagingOptions = null;
this.sortOptions = null;
}
/**
* Adds a value to the builder for filters
* @param filters Value to assign to the mutable Builder
* @return The Builder instance so that call chaining works
**/
public Builder setFilters(BusinessSearchFilters filters) {
this.filters = filters;
return this;
}
/**
* Adds a value to the builder for pagingOptions
* @param pagingOptions Value to assign to the mutable Builder
* @return The Builder instance so that call chaining works
**/
public Builder setPagingOptions(PagedRequestOptions pagingOptions) {
this.pagingOptions = pagingOptions;
return this;
}
/**
* Adds a value to the builder for sortOptions
* @param sortOptions Value to assign to the mutable Builder
* @return The Builder instance so that call chaining works
**/
public Builder setSortOptions(BusinessSearchSortOptions sortOptions) {
this.sortOptions = sortOptions;
return this;
}
/**
* Takes the configuration in the mutable Builder and uses it to instantiate a final instance
* of the BusinessSearchRequest class
* @return The instantiated final BusinessSearchRequest
**/
public BusinessSearchRequest build() {
return new BusinessSearchRequest(
this.filters,
this.pagingOptions,
this.sortOptions);
}
}
/**
* Returns a Builder for BusinessSearchRequest, which is a mutable representation of the object. Once the
* client has built up an object they can then create an immutable BusinessSearchRequest 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 BusinessSearchRequest instance
**/
public String toString() {
String result = "BusinessSearchRequest\n";
result += "-> filters: (BusinessSearchFilters)"
+ StringUtils.join("\n ", Arrays.asList(String.valueOf(this.filters).split("\n"))) + "\n";
result += "-> pagingOptions: (PagedRequestOptions)"
+ StringUtils.join("\n ", Arrays.asList(String.valueOf(this.pagingOptions).split("\n"))) + "\n";
result += "-> sortOptions: (BusinessSearchSortOptions)"
+ StringUtils.join("\n ", Arrays.asList(String.valueOf(this.sortOptions).split("\n"))) + "\n";
return result;
}
/**
* Allows for simple conversion between the low-level generated protobuf object to
* BusinessSearchRequest, which is much more usable.
* @return An instance of BusinessSearchRequest representing the input proto object
**/
public static BusinessSearchRequest fromProto(ApiProto.BusinessSearchRequest proto) {
BusinessSearchRequest out = null;
if (proto != null) {
BusinessSearchRequest.Builder outBuilder = BusinessSearchRequest.newBuilder()
.setFilters(BusinessSearchFilters.fromProto(proto.getFilters()))
.setPagingOptions(PagedRequestOptions.fromProto(proto.getPagingOptions()))
.setSortOptions(BusinessSearchSortOptions.fromProto(proto.getSortOptions()));
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 BusinessSearchRequest instances representing the input proto objects
**/
public static List fromProtos(List protos) {
List out = new ArrayList();
for(ApiProto.BusinessSearchRequest proto : protos) {
out.add(BusinessSearchRequest.fromProto(proto));
}
return out;
}
/**
* Allows for simple conversion of an object to the low-level generated protobuf object.
* @return An instance of ApiProto.BusinessSearchRequest which is a proto object ready for wire transmission
**/
public ApiProto.BusinessSearchRequest toProto() {
BusinessSearchRequest obj = this;
ApiProto.BusinessSearchRequest.Builder outBuilder = ApiProto.BusinessSearchRequest.newBuilder();
if(obj.getFilters() != null){outBuilder.setFilters(obj.getFilters().toProto());}
if(obj.getPagingOptions() != null){outBuilder.setPagingOptions(obj.getPagingOptions().toProto());}
if(obj.getSortOptions() != null){outBuilder.setSortOptions(obj.getSortOptions().toProto());}
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.BusinessSearchRequest instances representing the input objects.
*/
public static List toProtos(List objects) {
List out = new ArrayList();
if(objects != null) {
for (BusinessSearchRequest obj : objects) {
out.add(obj!=null?obj.toProto():null);
}
}
return out;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy