
uk.gov.justice.laa.crime.common.model.contribution.ApiCalculateContributionRequest Maven / Gradle / Ivy
package uk.gov.justice.laa.crime.common.model.contribution;
import java.math.BigDecimal;
import javax.annotation.processing.Generated;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import jakarta.validation.constraints.NotNull;
/**
* Calculate Contribution Request
*
* Data Contract for Calc Contribs request
*
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"annualDisposableIncome",
"disposableIncomePercent",
"minimumMonthlyAmount",
"contributionCap",
"upfrontTotalMonths",
"upliftApplied",
"upliftedIncomePercent",
"minUpliftedMonthlyAmount"
})
@Generated("jsonschema2pojo")
public class ApiCalculateContributionRequest {
/**
* Annual Disposable Income
* (Required)
*
*/
@JsonProperty("annualDisposableIncome")
@JsonPropertyDescription("Annual Disposable Income")
@NotNull
private BigDecimal annualDisposableIncome;
/**
* Disposable Income Percent
* (Required)
*
*/
@JsonProperty("disposableIncomePercent")
@JsonPropertyDescription("Disposable Income Percent")
@NotNull
private BigDecimal disposableIncomePercent;
/**
* Minimum Monthly Amount
* (Required)
*
*/
@JsonProperty("minimumMonthlyAmount")
@JsonPropertyDescription("Minimum Monthly Amount")
@NotNull
private BigDecimal minimumMonthlyAmount;
/**
* Contribution Cap
* (Required)
*
*/
@JsonProperty("contributionCap")
@JsonPropertyDescription("Contribution Cap")
@NotNull
private BigDecimal contributionCap;
/**
* upfront Total Months
* (Required)
*
*/
@JsonProperty("upfrontTotalMonths")
@JsonPropertyDescription("upfront Total Months")
@NotNull
private Integer upfrontTotalMonths;
/**
* Currently has a fixed value of 'false'.
*
*/
@JsonProperty("upliftApplied")
@JsonPropertyDescription("Currently has a fixed value of 'false'.")
private Boolean upliftApplied;
/**
* Uplifted income percent
*
*/
@JsonProperty("upliftedIncomePercent")
@JsonPropertyDescription("Uplifted income percent")
private BigDecimal upliftedIncomePercent;
/**
* Minimum Uplifted Monthly Amount
*
*/
@JsonProperty("minUpliftedMonthlyAmount")
@JsonPropertyDescription("Minimum Uplifted Monthly Amount")
private BigDecimal minUpliftedMonthlyAmount;
protected final static Object NOT_FOUND_VALUE = new Object();
/**
* No args constructor for use in serialization
*
*/
public ApiCalculateContributionRequest() {
}
/**
*
* @param contributionCap
* @param annualDisposableIncome
* @param upliftApplied
* @param minimumMonthlyAmount
* @param minUpliftedMonthlyAmount
* @param upliftedIncomePercent
* @param disposableIncomePercent
* @param upfrontTotalMonths
*/
public ApiCalculateContributionRequest(BigDecimal annualDisposableIncome, BigDecimal disposableIncomePercent, BigDecimal minimumMonthlyAmount, BigDecimal contributionCap, Integer upfrontTotalMonths, Boolean upliftApplied, BigDecimal upliftedIncomePercent, BigDecimal minUpliftedMonthlyAmount) {
super();
this.annualDisposableIncome = annualDisposableIncome;
this.disposableIncomePercent = disposableIncomePercent;
this.minimumMonthlyAmount = minimumMonthlyAmount;
this.contributionCap = contributionCap;
this.upfrontTotalMonths = upfrontTotalMonths;
this.upliftApplied = upliftApplied;
this.upliftedIncomePercent = upliftedIncomePercent;
this.minUpliftedMonthlyAmount = minUpliftedMonthlyAmount;
}
/**
* Annual Disposable Income
* (Required)
*
*/
@JsonProperty("annualDisposableIncome")
public BigDecimal getAnnualDisposableIncome() {
return annualDisposableIncome;
}
/**
* Annual Disposable Income
* (Required)
*
*/
@JsonProperty("annualDisposableIncome")
public void setAnnualDisposableIncome(BigDecimal annualDisposableIncome) {
this.annualDisposableIncome = annualDisposableIncome;
}
public ApiCalculateContributionRequest withAnnualDisposableIncome(BigDecimal annualDisposableIncome) {
this.annualDisposableIncome = annualDisposableIncome;
return this;
}
/**
* Disposable Income Percent
* (Required)
*
*/
@JsonProperty("disposableIncomePercent")
public BigDecimal getDisposableIncomePercent() {
return disposableIncomePercent;
}
/**
* Disposable Income Percent
* (Required)
*
*/
@JsonProperty("disposableIncomePercent")
public void setDisposableIncomePercent(BigDecimal disposableIncomePercent) {
this.disposableIncomePercent = disposableIncomePercent;
}
public ApiCalculateContributionRequest withDisposableIncomePercent(BigDecimal disposableIncomePercent) {
this.disposableIncomePercent = disposableIncomePercent;
return this;
}
/**
* Minimum Monthly Amount
* (Required)
*
*/
@JsonProperty("minimumMonthlyAmount")
public BigDecimal getMinimumMonthlyAmount() {
return minimumMonthlyAmount;
}
/**
* Minimum Monthly Amount
* (Required)
*
*/
@JsonProperty("minimumMonthlyAmount")
public void setMinimumMonthlyAmount(BigDecimal minimumMonthlyAmount) {
this.minimumMonthlyAmount = minimumMonthlyAmount;
}
public ApiCalculateContributionRequest withMinimumMonthlyAmount(BigDecimal minimumMonthlyAmount) {
this.minimumMonthlyAmount = minimumMonthlyAmount;
return this;
}
/**
* Contribution Cap
* (Required)
*
*/
@JsonProperty("contributionCap")
public BigDecimal getContributionCap() {
return contributionCap;
}
/**
* Contribution Cap
* (Required)
*
*/
@JsonProperty("contributionCap")
public void setContributionCap(BigDecimal contributionCap) {
this.contributionCap = contributionCap;
}
public ApiCalculateContributionRequest withContributionCap(BigDecimal contributionCap) {
this.contributionCap = contributionCap;
return this;
}
/**
* upfront Total Months
* (Required)
*
*/
@JsonProperty("upfrontTotalMonths")
public Integer getUpfrontTotalMonths() {
return upfrontTotalMonths;
}
/**
* upfront Total Months
* (Required)
*
*/
@JsonProperty("upfrontTotalMonths")
public void setUpfrontTotalMonths(Integer upfrontTotalMonths) {
this.upfrontTotalMonths = upfrontTotalMonths;
}
public ApiCalculateContributionRequest withUpfrontTotalMonths(Integer upfrontTotalMonths) {
this.upfrontTotalMonths = upfrontTotalMonths;
return this;
}
/**
* Currently has a fixed value of 'false'.
*
*/
@JsonProperty("upliftApplied")
public Boolean getUpliftApplied() {
return upliftApplied;
}
/**
* Currently has a fixed value of 'false'.
*
*/
@JsonProperty("upliftApplied")
public void setUpliftApplied(Boolean upliftApplied) {
this.upliftApplied = upliftApplied;
}
public ApiCalculateContributionRequest withUpliftApplied(Boolean upliftApplied) {
this.upliftApplied = upliftApplied;
return this;
}
/**
* Uplifted income percent
*
*/
@JsonProperty("upliftedIncomePercent")
public BigDecimal getUpliftedIncomePercent() {
return upliftedIncomePercent;
}
/**
* Uplifted income percent
*
*/
@JsonProperty("upliftedIncomePercent")
public void setUpliftedIncomePercent(BigDecimal upliftedIncomePercent) {
this.upliftedIncomePercent = upliftedIncomePercent;
}
public ApiCalculateContributionRequest withUpliftedIncomePercent(BigDecimal upliftedIncomePercent) {
this.upliftedIncomePercent = upliftedIncomePercent;
return this;
}
/**
* Minimum Uplifted Monthly Amount
*
*/
@JsonProperty("minUpliftedMonthlyAmount")
public BigDecimal getMinUpliftedMonthlyAmount() {
return minUpliftedMonthlyAmount;
}
/**
* Minimum Uplifted Monthly Amount
*
*/
@JsonProperty("minUpliftedMonthlyAmount")
public void setMinUpliftedMonthlyAmount(BigDecimal minUpliftedMonthlyAmount) {
this.minUpliftedMonthlyAmount = minUpliftedMonthlyAmount;
}
public ApiCalculateContributionRequest withMinUpliftedMonthlyAmount(BigDecimal minUpliftedMonthlyAmount) {
this.minUpliftedMonthlyAmount = minUpliftedMonthlyAmount;
return this;
}
protected boolean declaredProperty(String name, Object value) {
if ("annualDisposableIncome".equals(name)) {
if (value instanceof BigDecimal) {
setAnnualDisposableIncome(((BigDecimal) value));
} else {
throw new IllegalArgumentException(("property \"annualDisposableIncome\" is of type \"java.math.BigDecimal\", but got "+ value.getClass().toString()));
}
return true;
} else {
if ("disposableIncomePercent".equals(name)) {
if (value instanceof BigDecimal) {
setDisposableIncomePercent(((BigDecimal) value));
} else {
throw new IllegalArgumentException(("property \"disposableIncomePercent\" is of type \"java.math.BigDecimal\", but got "+ value.getClass().toString()));
}
return true;
} else {
if ("minimumMonthlyAmount".equals(name)) {
if (value instanceof BigDecimal) {
setMinimumMonthlyAmount(((BigDecimal) value));
} else {
throw new IllegalArgumentException(("property \"minimumMonthlyAmount\" is of type \"java.math.BigDecimal\", but got "+ value.getClass().toString()));
}
return true;
} else {
if ("contributionCap".equals(name)) {
if (value instanceof BigDecimal) {
setContributionCap(((BigDecimal) value));
} else {
throw new IllegalArgumentException(("property \"contributionCap\" is of type \"java.math.BigDecimal\", but got "+ value.getClass().toString()));
}
return true;
} else {
if ("upfrontTotalMonths".equals(name)) {
if (value instanceof Integer) {
setUpfrontTotalMonths(((Integer) value));
} else {
throw new IllegalArgumentException(("property \"upfrontTotalMonths\" is of type \"java.lang.Integer\", but got "+ value.getClass().toString()));
}
return true;
} else {
if ("upliftApplied".equals(name)) {
if (value instanceof Boolean) {
setUpliftApplied(((Boolean) value));
} else {
throw new IllegalArgumentException(("property \"upliftApplied\" is of type \"java.lang.Boolean\", but got "+ value.getClass().toString()));
}
return true;
} else {
if ("upliftedIncomePercent".equals(name)) {
if (value instanceof BigDecimal) {
setUpliftedIncomePercent(((BigDecimal) value));
} else {
throw new IllegalArgumentException(("property \"upliftedIncomePercent\" is of type \"java.math.BigDecimal\", but got "+ value.getClass().toString()));
}
return true;
} else {
if ("minUpliftedMonthlyAmount".equals(name)) {
if (value instanceof BigDecimal) {
setMinUpliftedMonthlyAmount(((BigDecimal) value));
} else {
throw new IllegalArgumentException(("property \"minUpliftedMonthlyAmount\" is of type \"java.math.BigDecimal\", but got "+ value.getClass().toString()));
}
return true;
} else {
return false;
}
}
}
}
}
}
}
}
}
protected Object declaredPropertyOrNotFound(String name, Object notFoundValue) {
if ("annualDisposableIncome".equals(name)) {
return getAnnualDisposableIncome();
} else {
if ("disposableIncomePercent".equals(name)) {
return getDisposableIncomePercent();
} else {
if ("minimumMonthlyAmount".equals(name)) {
return getMinimumMonthlyAmount();
} else {
if ("contributionCap".equals(name)) {
return getContributionCap();
} else {
if ("upfrontTotalMonths".equals(name)) {
return getUpfrontTotalMonths();
} else {
if ("upliftApplied".equals(name)) {
return getUpliftApplied();
} else {
if ("upliftedIncomePercent".equals(name)) {
return getUpliftedIncomePercent();
} else {
if ("minUpliftedMonthlyAmount".equals(name)) {
return getMinUpliftedMonthlyAmount();
} else {
return notFoundValue;
}
}
}
}
}
}
}
}
}
@SuppressWarnings({
"unchecked"
})
publicT get(String name) {
Object value = declaredPropertyOrNotFound(name, ApiCalculateContributionRequest.NOT_FOUND_VALUE);
if (ApiCalculateContributionRequest.NOT_FOUND_VALUE!= value) {
return ((T) value);
} else {
throw new IllegalArgumentException((("property \""+ name)+"\" is not defined"));
}
}
public void set(String name, Object value) {
if (!declaredProperty(name, value)) {
throw new IllegalArgumentException((("property \""+ name)+"\" is not defined"));
}
}
public ApiCalculateContributionRequest with(String name, Object value) {
if (!declaredProperty(name, value)) {
throw new IllegalArgumentException((("property \""+ name)+"\" is not defined"));
}
return this;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(ApiCalculateContributionRequest.class.getName()).append('@').append(Integer.toHexString(System.identityHashCode(this))).append('[');
sb.append("annualDisposableIncome");
sb.append('=');
sb.append(((this.annualDisposableIncome == null)?"":this.annualDisposableIncome));
sb.append(',');
sb.append("disposableIncomePercent");
sb.append('=');
sb.append(((this.disposableIncomePercent == null)?"":this.disposableIncomePercent));
sb.append(',');
sb.append("minimumMonthlyAmount");
sb.append('=');
sb.append(((this.minimumMonthlyAmount == null)?"":this.minimumMonthlyAmount));
sb.append(',');
sb.append("contributionCap");
sb.append('=');
sb.append(((this.contributionCap == null)?"":this.contributionCap));
sb.append(',');
sb.append("upfrontTotalMonths");
sb.append('=');
sb.append(((this.upfrontTotalMonths == null)?"":this.upfrontTotalMonths));
sb.append(',');
sb.append("upliftApplied");
sb.append('=');
sb.append(((this.upliftApplied == null)?"":this.upliftApplied));
sb.append(',');
sb.append("upliftedIncomePercent");
sb.append('=');
sb.append(((this.upliftedIncomePercent == null)?"":this.upliftedIncomePercent));
sb.append(',');
sb.append("minUpliftedMonthlyAmount");
sb.append('=');
sb.append(((this.minUpliftedMonthlyAmount == null)?"":this.minUpliftedMonthlyAmount));
sb.append(',');
if (sb.charAt((sb.length()- 1)) == ',') {
sb.setCharAt((sb.length()- 1), ']');
} else {
sb.append(']');
}
return sb.toString();
}
@Override
public int hashCode() {
int result = 1;
result = ((result* 31)+((this.contributionCap == null)? 0 :this.contributionCap.hashCode()));
result = ((result* 31)+((this.annualDisposableIncome == null)? 0 :this.annualDisposableIncome.hashCode()));
result = ((result* 31)+((this.upliftApplied == null)? 0 :this.upliftApplied.hashCode()));
result = ((result* 31)+((this.minimumMonthlyAmount == null)? 0 :this.minimumMonthlyAmount.hashCode()));
result = ((result* 31)+((this.minUpliftedMonthlyAmount == null)? 0 :this.minUpliftedMonthlyAmount.hashCode()));
result = ((result* 31)+((this.upliftedIncomePercent == null)? 0 :this.upliftedIncomePercent.hashCode()));
result = ((result* 31)+((this.disposableIncomePercent == null)? 0 :this.disposableIncomePercent.hashCode()));
result = ((result* 31)+((this.upfrontTotalMonths == null)? 0 :this.upfrontTotalMonths.hashCode()));
return result;
}
@Override
public boolean equals(Object other) {
if (other == this) {
return true;
}
if ((other instanceof ApiCalculateContributionRequest) == false) {
return false;
}
ApiCalculateContributionRequest rhs = ((ApiCalculateContributionRequest) other);
return (((((((((this.contributionCap == rhs.contributionCap)||((this.contributionCap!= null)&&this.contributionCap.equals(rhs.contributionCap)))&&((this.annualDisposableIncome == rhs.annualDisposableIncome)||((this.annualDisposableIncome!= null)&&this.annualDisposableIncome.equals(rhs.annualDisposableIncome))))&&((this.upliftApplied == rhs.upliftApplied)||((this.upliftApplied!= null)&&this.upliftApplied.equals(rhs.upliftApplied))))&&((this.minimumMonthlyAmount == rhs.minimumMonthlyAmount)||((this.minimumMonthlyAmount!= null)&&this.minimumMonthlyAmount.equals(rhs.minimumMonthlyAmount))))&&((this.minUpliftedMonthlyAmount == rhs.minUpliftedMonthlyAmount)||((this.minUpliftedMonthlyAmount!= null)&&this.minUpliftedMonthlyAmount.equals(rhs.minUpliftedMonthlyAmount))))&&((this.upliftedIncomePercent == rhs.upliftedIncomePercent)||((this.upliftedIncomePercent!= null)&&this.upliftedIncomePercent.equals(rhs.upliftedIncomePercent))))&&((this.disposableIncomePercent == rhs.disposableIncomePercent)||((this.disposableIncomePercent!= null)&&this.disposableIncomePercent.equals(rhs.disposableIncomePercent))))&&((this.upfrontTotalMonths == rhs.upfrontTotalMonths)||((this.upfrontTotalMonths!= null)&&this.upfrontTotalMonths.equals(rhs.upfrontTotalMonths))));
}
}