package io.robe.common.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* Client response message model
*/
public class RobeMessage {
/***
* Message log id
*/
private String id;
/**
* Special error code giving by developers
*/
private String code;
/**
* Http status code
*/
private int status = 500;
/**
* Message detail
*/
private String message;
/**
* Message description url
*/
@JsonProperty("more_info")
private String moreInfo;
public RobeMessage() {
}
public RobeMessage(Builder builder) {
this.id = builder.id;
this.code = builder.code;
this.status = builder.status;
this.message = builder.message;
this.moreInfo = builder.moreInfo;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getMoreInfo() {
return moreInfo;
}
public void setMoreInfo(String moreInfo) {
this.moreInfo = moreInfo;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
RobeMessage that = (RobeMessage) o;
if (status != that.status) return false;
if (id != null ? !id.equals(that.id) : that.id != null) return false;
if (code != null ? !code.equals(that.code) : that.code != null) return false;
if (message != null ? !message.equals(that.message) : that.message != null) return false;
return moreInfo != null ? moreInfo.equals(that.moreInfo) : that.moreInfo == null;
}
@Override
public int hashCode() {
int result = id != null ? id.hashCode() : 0;
result = 31 * result + (code != null ? code.hashCode() : 0);
result = 31 * result + status;
result = 31 * result + (message != null ? message.hashCode() : 0);
result = 31 * result + (moreInfo != null ? moreInfo.hashCode() : 0);
return result;
}
@Override
public String toString() {
return "RobeMessage{" +
"id='" + id + '\'' +
", code='" + code + '\'' +
", status=" + status +
", message='" + message + '\'' +
", moreInfo='" + moreInfo + '\'' +
'}';
}
public static class Builder {
private String id;
private String code;
private int status = 500;
private String message;
private String moreInfo;
public Builder id(String id) {
this.id = id;
return this;
}
public Builder code(String code) {
this.code = code;
return this;
}
public Builder status(int status) {
this.status = status;
return this;
}
public Builder message(String message) {
this.message = message;
return this;
}
public Builder moreInfo(String moreInfo) {
this.moreInfo = moreInfo;
return this;
}
public int getStatus() {
return status;
}
public RobeMessage build() {
return new RobeMessage(this);
}
}
}