
com.bebound.spring.model.Request Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of spring-utils Show documentation
Show all versions of spring-utils Show documentation
Handle Be-Bound requests with a spring server
The newest version!
package com.bebound.spring.model;
import com.bebound.spring.utils.C;
import com.google.gson.GsonBuilder;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import java.util.HashMap;
import java.util.Map;
/**
* Created by mbiamont on 11/12/2015.
*/
public abstract class Request {
@SerializedName(C.Parameter.PARAM_TRANSPORT)
private String transport;
@SerializedName(C.Parameter.PARAM_USER_ID)
private long userId;
@SerializedName(C.Parameter.PARAM_PHONE_NUMBER)
private String phoneNumber;
@SerializedName(C.Parameter.PARAM_APP_ID)
private long appId;
@SerializedName(C.Parameter.PARAM_APP_NAME)
private String appName;
@SerializedName(C.Parameter.PARAM_APP_VERSION)
private long appVersion;
@SerializedName(C.Parameter.PARAM_OPERATION_NAME)
private String operationName;
public Request() {
}
public abstract Map getParameters();
public abstract void setParameters(Map parameters);
public abstract T getBodyAs(Class type);
public String getTransport() {
return transport;
}
public void setTransport(String transport) {
this.transport = transport;
}
public long getUserId() {
return userId;
}
public void setUserId(long userId) {
this.userId = userId;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public long getAppId() {
return appId;
}
public void setAppId(long appId) {
this.appId = appId;
}
public String getAppName() {
return appName;
}
public void setAppName(String appName) {
this.appName = appName;
}
public long getAppVersion() {
return appVersion;
}
public void setAppVersion(long appVersion) {
this.appVersion = appVersion;
}
public String getOperationName() {
return operationName;
}
public void setOperationName(String operationName) {
this.operationName = operationName;
}
public boolean isSmsRequest() {
return transport.equalsIgnoreCase("sms");
}
public boolean isWebRequest() {
return transport.equalsIgnoreCase("web");
}
public static class MapRequest extends Request {
@SerializedName(C.Parameter.PARAM_PARAMETER_LIST)
private Map parameters;
@Expose(serialize = false, deserialize = false)
private String jsonParams;
public Map getParameters() {
return parameters;
}
public void setParameters(Map parameters) {
this.parameters = parameters;
}
@Override
public T getBodyAs(Class type) {
return new GsonBuilder().create().fromJson(jsonParams, type);
}
public String getJsonParams() {
return jsonParams;
}
public void setJsonParams(String json) {
this.jsonParams = json;
}
}
public static class BodyRequest extends Request {
@SerializedName(C.Parameter.PARAM_PARAMETER_LIST)
private T body;
public T getBody() {
return body;
}
public void setBody(T body) {
this.body = body;
}
@Override
public Map getParameters() {
throw new UnsupportedOperationException();
}
@Override
public void setParameters(Map parameters) {
throw new UnsupportedOperationException();
}
@Override
public T getBodyAs(Class type) {
throw new UnsupportedOperationException();
}
}
public static class Builder {
private String transport;
private long userId;
private String phoneNumber;
private long appId;
private String appName;
private long appVersion;
private String operationName;
private Object body;
private Map parameters = new HashMap<>();
public Builder withTransport(String transport) {
this.transport = transport;
return this;
}
public Builder withUserId(long userId) {
this.userId = userId;
return this;
}
public Builder withPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
return this;
}
public Builder withAppId(long appId) {
this.appId = appId;
return this;
}
public Builder withAppName(String appName) {
this.appName = appName;
return this;
}
public Builder withAppVersion(long appVersion) {
this.appVersion = appVersion;
return this;
}
public Builder withOperationName(String operationName) {
this.operationName = operationName;
return this;
}
public Builder put(String name, Object value) {
parameters.put(name, value);
return this;
}
public Builder withBody(Object body) {
this.body = body;
return this;
}
public Request build() {
Request request;
if (body != null) {
BodyRequest
© 2015 - 2025 Weber Informatics LLC | Privacy Policy