All Downloads are FREE. Search and download functionalities are using the official Maven repository.

tech.carpentum.sdk.payment.internal.generated.model.AccountCallbackAbsaPayImpl Maven / Gradle / Ivy

There is a newer version: 2.1021.0
Show newest version
//THE FILE IS GENERATED, DO NOT MODIFY IT MANUALLY!!!
package tech.carpentum.sdk.payment.internal.generated.model;

import com.squareup.moshi.JsonClass;
import java.util.Objects;
import java.util.Optional;
import org.jetbrains.annotations.NotNull;
import tech.carpentum.sdk.payment.internal.generated.model.*;
import tech.carpentum.sdk.payment.model.*;

/** AccountCallbackAbsaPay
 *
 * Parameters of your customer's bank or wallet account which your customer sends funds from. These account parameters are used for the sender's account verification in processing of the payment.
Which parameters are mandatory depends on the payment method and the currency your customer choose to pay.
 *
 * 
 *
 * The model class is immutable.
 * Use static {@link #builder} method to create a new {@link Builder} instance to build the model class instance.
 *
 */
@JsonClass(generateAdapter = false)
public class AccountCallbackAbsaPayImpl implements AccountCallbackAbsaPay {
    /** Account Name is the name of the person who holds the bank or wallet account which your customer sends funds from to make his payment.
The name should be in the same format as the account holder name of the account. Allows numbers, some special characters and UNICODE symbols, see validation pattern. */
    private final String accountName;

    @Override
    public String getAccountName() {
        return accountName;
    }


    /** Account Name is the name of the person who holds the bank or wallet account which your customer sends funds from to make his payment.
The name should be in the same format as the account holder name of the account. Allows numbers, some special characters and UNICODE symbols, see validation pattern. */
    private final String accountNumber;

    @Override
    public String getAccountNumber() {
        return accountNumber;
    }


    private final int accountIndex;

    @Override
    public int getAccountIndex() {
        return accountIndex;
    }




    private final int hashCode;
    private final String toString;

    private AccountCallbackAbsaPayImpl(BuilderImpl builder) {
        this.accountName = Objects.requireNonNull(builder.accountName, "Property 'accountName' is required.");
        this.accountNumber = Objects.requireNonNull(builder.accountNumber, "Property 'accountNumber' is required.");
        this.accountIndex = Objects.requireNonNull(builder.accountIndex, "Property 'accountIndex' is required.");

        this.hashCode = Objects.hash(accountName, accountNumber, accountIndex);
        this.toString = builder.type + "(" +
                "accountName=" + accountName +
                ", accountNumber=" + accountNumber +
                ", accountIndex=" + accountIndex +
                ')';
    }

    @Override
    public int hashCode() {
        return hashCode;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null) {
            return false;
        }

        if (!(obj instanceof AccountCallbackAbsaPayImpl)) {
            return false;
        }

        AccountCallbackAbsaPayImpl that = (AccountCallbackAbsaPayImpl) obj;
        if (!Objects.equals(this.accountName, that.accountName)) return false;
        if (!Objects.equals(this.accountNumber, that.accountNumber)) return false;
        if (!Objects.equals(this.accountIndex, that.accountIndex)) return false;

        return true;
    }

    @Override
    public String toString() {
        return toString;
    }

    /** Builder for {@link AccountCallbackAbsaPay} model class. */
    public static class BuilderImpl implements AccountCallbackAbsaPay.Builder {
        private String accountName = null;
        private String accountNumber = null;
        private Integer accountIndex = null;

        private final String type;

        public BuilderImpl(String type) {
            this.type = type;
        }

        public BuilderImpl() {
            this("AccountCallbackAbsaPay");
        }

        /**
          * Set {@link AccountCallbackAbsaPay#getAccountName} property.
          *
          * Account Name is the name of the person who holds the bank or wallet account which your customer sends funds from to make his payment.
The name should be in the same format as the account holder name of the account. Allows numbers, some special characters and UNICODE symbols, see validation pattern.
          */
        @Override
        public BuilderImpl accountName(String accountName) {
            this.accountName = accountName;
            return this;
        }

        /**
          * Set {@link AccountCallbackAbsaPay#getAccountNumber} property.
          *
          * Account Name is the name of the person who holds the bank or wallet account which your customer sends funds from to make his payment.
The name should be in the same format as the account holder name of the account. Allows numbers, some special characters and UNICODE symbols, see validation pattern.
          */
        @Override
        public BuilderImpl accountNumber(String accountNumber) {
            this.accountNumber = accountNumber;
            return this;
        }

        /**
          * Set {@link AccountCallbackAbsaPay#getAccountIndex} property.
          *
          * 
          */
        @Override
        public BuilderImpl accountIndex(Integer accountIndex) {
            this.accountIndex = accountIndex;
            return this;
        }

        /**
         * Create new instance of {@link AccountCallbackAbsaPay} model class with the builder instance properties.
         *
         * @throws NullPointerException in case required properties are not specified.
         */
        @Override
        public AccountCallbackAbsaPayImpl build() {
            return new AccountCallbackAbsaPayImpl(this);
        }

    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy