com.adyen.model.marketpay.AccountHolderDetails Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of adyen-java-api-library Show documentation
Show all versions of adyen-java-api-library Show documentation
Adyen API Client Library for Java
/*
* ######
* ######
* ############ ####( ###### #####. ###### ############ ############
* ############# #####( ###### #####. ###### ############# #############
* ###### #####( ###### #####. ###### ##### ###### ##### ######
* ###### ###### #####( ###### #####. ###### ##### ##### ##### ######
* ###### ###### #####( ###### #####. ###### ##### ##### ######
* ############# ############# ############# ############# ##### ######
* ############ ############ ############# ############ ##### ######
* ######
* #############
* ############
*
* Adyen Java API Library
*
* Copyright (c) 2017 Adyen B.V.
* This file is open source and available under the MIT license.
* See the LICENSE file for more info.
*/
package com.adyen.model.marketpay;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import com.adyen.model.Address;
import com.google.gson.annotations.SerializedName;
/**
* AccountHolderDetails
*/
public class AccountHolderDetails {
@SerializedName("metadata")
private Map metadata = new HashMap();
@SerializedName("address")
private Address address = null;
@SerializedName("phoneNumber")
private PhoneNumber phoneNumber = null;
@SerializedName("bankAccountDetails")
private List bankAccountDetailContainers = null;
private transient List bankAccountDetails = null;
@SerializedName("individualDetails")
private IndividualDetails individualDetails = null;
@SerializedName("webAddress")
private String webAddress = null;
@SerializedName("merchantCategoryCode")
private String merchantCategoryCode = null;
@SerializedName("fullPhoneNumber")
private String fullPhoneNumber = null;
@SerializedName("businessDetails")
private BusinessDetails businessDetails = null;
@SerializedName("email")
private String email = null;
public AccountHolderDetails metadata(Map metadata) {
this.metadata = metadata;
return this;
}
public AccountHolderDetails putMetadataItem(String key, String metadataItem) {
this.metadata.put(key, metadataItem);
return this;
}
/**
* a map of key/value pairs of metadata sent by merchant
*
* @return metadata
**/
public Map getMetadata() {
return metadata;
}
public void setMetadata(Map metadata) {
this.metadata = metadata;
}
public AccountHolderDetails address(Address address) {
this.address = address;
return this;
}
/**
* account holder address
*
* @return address
**/
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
public AccountHolderDetails phoneNumber(PhoneNumber phoneNumber) {
this.phoneNumber = phoneNumber;
return this;
}
/**
* account holder phone number
*
* @return phoneNumber
**/
public PhoneNumber getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(PhoneNumber phoneNumber) {
this.phoneNumber = phoneNumber;
}
/**
* Populate the virtual bankAccountDetails to bypass the bankAccountDetailsContainer list
*
* @return bank account details
*/
public List getBankAccountDetails() {
if (bankAccountDetails == null) {
bankAccountDetails = new ArrayList();
if (bankAccountDetailContainers != null && ! bankAccountDetailContainers.isEmpty()) {
for (BankAccountDetailContainer bankAccountDetailContainer : bankAccountDetailContainers) {
bankAccountDetails.add(bankAccountDetailContainer.getBankAccountDetail());
}
}
}
return bankAccountDetails;
}
/**
* Creating a new bankAccountDetails list
* @param bankAccountDetails bank account details
*/
public void setBankAccountDetails(List bankAccountDetails) {
this.bankAccountDetails = bankAccountDetails;
// set as well the container list this will be send in the API request
this.bankAccountDetailContainers = new ArrayList();
for (BankAccountDetail bankAccountDetail : bankAccountDetails) {
BankAccountDetailContainer bankAccountDetailContainer = new BankAccountDetailContainer(bankAccountDetail);
this.bankAccountDetailContainers.add(bankAccountDetailContainer);
}
}
/**
* Add bankAccountDetail to the bankAccountDetailContainers and bankAccountDetails list
*
* @param bankAccountDetail BankAccountDetail
* @return account holder details
*/
public AccountHolderDetails addBankAccountDetail(BankAccountDetail bankAccountDetail) {
BankAccountDetailContainer bankAccountDetailContainer = new BankAccountDetailContainer(bankAccountDetail);
if (bankAccountDetailContainers == null) {
bankAccountDetailContainers = new ArrayList();
}
this.bankAccountDetailContainers.add(bankAccountDetailContainer);
if (bankAccountDetails == null) {
bankAccountDetails = new ArrayList();
}
this.bankAccountDetails.add(bankAccountDetail);
return this;
}
public AccountHolderDetails individualDetails(IndividualDetails individualDetails) {
this.individualDetails = individualDetails;
return this;
}
/**
* properties specific to Individual legal entities. Populated only if the account holder represents an Individual legal entity
*
* @return individualDetails
**/
public IndividualDetails getIndividualDetails() {
return individualDetails;
}
public void setIndividualDetails(IndividualDetails individualDetails) {
this.individualDetails = individualDetails;
}
public AccountHolderDetails webAddress(String webAddress) {
this.webAddress = webAddress;
return this;
}
/**
* account holder URL
*
* @return webAddress
**/
public String getWebAddress() {
return webAddress;
}
public void setWebAddress(String webAddress) {
this.webAddress = webAddress;
}
public AccountHolderDetails merchantCategoryCode(String merchantCategoryCode) {
this.merchantCategoryCode = merchantCategoryCode;
return this;
}
/**
* Merchant Category Code (MCC) is classifier of the business by the type of goods or services it provides.
* https://en.wikipedia.org/wiki/Merchant_category_code
*
* @return merchantCategoryCode
**/
public String getMerchantCategoryCode() {
return merchantCategoryCode;
}
public void setMerchantCategoryCode(String merchantCategoryCode) {
this.merchantCategoryCode = merchantCategoryCode;
}
public AccountHolderDetails fullPhoneNumber(String fullPhoneNumber) {
this.fullPhoneNumber = fullPhoneNumber;
return this;
}
/**
* Get fullPhoneNumber
*
* @return fullPhoneNumber
**/
public String getFullPhoneNumber() {
return fullPhoneNumber;
}
public void setFullPhoneNumber(String fullPhoneNumber) {
this.fullPhoneNumber = fullPhoneNumber;
}
public AccountHolderDetails businessDetails(BusinessDetails businessDetails) {
this.businessDetails = businessDetails;
return this;
}
/**
* properties specific to Business legal entities. Populated only if the account holder represents a Business legal entity
*
* @return businessDetails
**/
public BusinessDetails getBusinessDetails() {
return businessDetails;
}
public void setBusinessDetails(BusinessDetails businessDetails) {
this.businessDetails = businessDetails;
}
public AccountHolderDetails email(String email) {
this.email = email;
return this;
}
/**
* account holder email address
*
* @return email
**/
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
AccountHolderDetails accountHolderDetails = (AccountHolderDetails) o;
return Objects.equals(this.metadata, accountHolderDetails.metadata)
&& Objects.equals(this.address, accountHolderDetails.address)
&& Objects.equals(this.phoneNumber,
accountHolderDetails.phoneNumber)
&& Objects.equals(this.bankAccountDetailContainers, accountHolderDetails.bankAccountDetailContainers)
&& Objects.equals(this.individualDetails, accountHolderDetails.individualDetails)
&& Objects.equals(this.webAddress, accountHolderDetails.webAddress)
&& Objects.equals(this.merchantCategoryCode, accountHolderDetails.merchantCategoryCode)
&& Objects.equals(this.fullPhoneNumber, accountHolderDetails.fullPhoneNumber)
&& Objects.equals(this.businessDetails, accountHolderDetails.businessDetails)
&& Objects.equals(this.email, accountHolderDetails.email);
}
@Override
public int hashCode() {
return Objects.hash(metadata, address, phoneNumber, bankAccountDetailContainers, individualDetails, webAddress, merchantCategoryCode, fullPhoneNumber, businessDetails, email);
}
@Override
public String toString() {
// Populate the bankAccountDetails list to provide back in the toString() method
this.getBankAccountDetails();
StringBuilder sb = new StringBuilder();
sb.append("class AccountHolderDetails {\n");
sb.append(" metadata: ").append(toIndentedString(metadata)).append("\n");
sb.append(" address: ").append(toIndentedString(address)).append("\n");
sb.append(" phoneNumber: ").append(toIndentedString(phoneNumber)).append("\n");
sb.append(" bankAccountDetails: ").append(toIndentedString(bankAccountDetails)).append("\n");
sb.append(" individualDetails: ").append(toIndentedString(individualDetails)).append("\n");
sb.append(" webAddress: ").append(toIndentedString(webAddress)).append("\n");
sb.append(" merchantCategoryCode: ").append(toIndentedString(merchantCategoryCode)).append("\n");
sb.append(" fullPhoneNumber: ").append(toIndentedString(fullPhoneNumber)).append("\n");
sb.append(" businessDetails: ").append(toIndentedString(businessDetails)).append("\n");
sb.append(" email: ").append(toIndentedString(email)).append("\n");
sb.append("}");
return sb.toString();
}
/**
* Convert the given object to string with each line indented by 4 spaces (except the first line).
*/
private String toIndentedString(Object o) {
if (o == null) {
return "null";
}
return o.toString().replace("\n", "\n ");
}
}