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

com.paypal.sdk.models.P24PaymentRequest Maven / Gradle / Ivy

/*
 * PaypalServerSDKLib
 *
 * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
 */

package com.paypal.sdk.models;

import com.fasterxml.jackson.annotation.JsonGetter;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonSetter;

/**
 * This is a model class for P24PaymentRequest type.
 */
public class P24PaymentRequest {
    private String name;
    private String email;
    private String countryCode;
    private ExperienceContext experienceContext;

    /**
     * Default constructor.
     */
    public P24PaymentRequest() {
    }

    /**
     * Initialization constructor.
     * @param  name  String value for name.
     * @param  email  String value for email.
     * @param  countryCode  String value for countryCode.
     * @param  experienceContext  ExperienceContext value for experienceContext.
     */
    public P24PaymentRequest(
            String name,
            String email,
            String countryCode,
            ExperienceContext experienceContext) {
        this.name = name;
        this.email = email;
        this.countryCode = countryCode;
        this.experienceContext = experienceContext;
    }

    /**
     * Getter for Name.
     * The full name representation like Mr J Smith.
     * @return Returns the String
     */
    @JsonGetter("name")
    public String getName() {
        return name;
    }

    /**
     * Setter for Name.
     * The full name representation like Mr J Smith.
     * @param name Value for String
     */
    @JsonSetter("name")
    public void setName(String name) {
        this.name = name;
    }

    /**
     * Getter for Email.
     * The internationalized email address.<blockquote><strong>Note:</strong> Up to 64 characters
     * are allowed before and 255 characters are allowed after the <code>{@literal @}</code> sign. However, the
     * generally accepted maximum length for an email address is 254 characters. The pattern
     * verifies that an unquoted <code>{@literal @}</code> sign exists.</blockquote>
     * @return Returns the String
     */
    @JsonGetter("email")
    public String getEmail() {
        return email;
    }

    /**
     * Setter for Email.
     * The internationalized email address.<blockquote><strong>Note:</strong> Up to 64 characters
     * are allowed before and 255 characters are allowed after the <code>{@literal @}</code> sign. However, the
     * generally accepted maximum length for an email address is 254 characters. The pattern
     * verifies that an unquoted <code>{@literal @}</code> sign exists.</blockquote>
     * @param email Value for String
     */
    @JsonSetter("email")
    public void setEmail(String email) {
        this.email = email;
    }

    /**
     * Getter for CountryCode.
     * The [two-character ISO 3166-1 code](/api/rest/reference/country-codes/) that identifies the
     * country or region.<blockquote><strong>Note:</strong> The country code for Great Britain is
     * <code>GB</code> and not <code>UK</code> as used in the top-level domain names for that
     * country. Use the `C2` country code for China worldwide for comparable uncontrolled price
     * (CUP) method, bank card, and cross-border transactions.</blockquote>
     * @return Returns the String
     */
    @JsonGetter("country_code")
    public String getCountryCode() {
        return countryCode;
    }

    /**
     * Setter for CountryCode.
     * The [two-character ISO 3166-1 code](/api/rest/reference/country-codes/) that identifies the
     * country or region.<blockquote><strong>Note:</strong> The country code for Great Britain is
     * <code>GB</code> and not <code>UK</code> as used in the top-level domain names for that
     * country. Use the `C2` country code for China worldwide for comparable uncontrolled price
     * (CUP) method, bank card, and cross-border transactions.</blockquote>
     * @param countryCode Value for String
     */
    @JsonSetter("country_code")
    public void setCountryCode(String countryCode) {
        this.countryCode = countryCode;
    }

    /**
     * Getter for ExperienceContext.
     * Customizes the payer experience during the approval process for the payment.
     * @return Returns the ExperienceContext
     */
    @JsonGetter("experience_context")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public ExperienceContext getExperienceContext() {
        return experienceContext;
    }

    /**
     * Setter for ExperienceContext.
     * Customizes the payer experience during the approval process for the payment.
     * @param experienceContext Value for ExperienceContext
     */
    @JsonSetter("experience_context")
    public void setExperienceContext(ExperienceContext experienceContext) {
        this.experienceContext = experienceContext;
    }

    /**
     * Converts this P24PaymentRequest into string format.
     * @return String representation of this class
     */
    @Override
    public String toString() {
        return "P24PaymentRequest [" + "name=" + name + ", email=" + email + ", countryCode="
                + countryCode + ", experienceContext=" + experienceContext + "]";
    }

    /**
     * Builds a new {@link P24PaymentRequest.Builder} object.
     * Creates the instance with the state of the current model.
     * @return a new {@link P24PaymentRequest.Builder} object
     */
    public Builder toBuilder() {
        Builder builder = new Builder(name, email, countryCode)
                .experienceContext(getExperienceContext());
        return builder;
    }

    /**
     * Class to build instances of {@link P24PaymentRequest}.
     */
    public static class Builder {
        private String name;
        private String email;
        private String countryCode;
        private ExperienceContext experienceContext;

        /**
         * Initialization constructor.
         */
        public Builder() {
        }

        /**
         * Initialization constructor.
         * @param  name  String value for name.
         * @param  email  String value for email.
         * @param  countryCode  String value for countryCode.
         */
        public Builder(String name, String email, String countryCode) {
            this.name = name;
            this.email = email;
            this.countryCode = countryCode;
        }

        /**
         * Setter for name.
         * @param  name  String value for name.
         * @return Builder
         */
        public Builder name(String name) {
            this.name = name;
            return this;
        }

        /**
         * Setter for email.
         * @param  email  String value for email.
         * @return Builder
         */
        public Builder email(String email) {
            this.email = email;
            return this;
        }

        /**
         * Setter for countryCode.
         * @param  countryCode  String value for countryCode.
         * @return Builder
         */
        public Builder countryCode(String countryCode) {
            this.countryCode = countryCode;
            return this;
        }

        /**
         * Setter for experienceContext.
         * @param  experienceContext  ExperienceContext value for experienceContext.
         * @return Builder
         */
        public Builder experienceContext(ExperienceContext experienceContext) {
            this.experienceContext = experienceContext;
            return this;
        }

        /**
         * Builds a new {@link P24PaymentRequest} object using the set fields.
         * @return {@link P24PaymentRequest}
         */
        public P24PaymentRequest build() {
            return new P24PaymentRequest(name, email, countryCode, experienceContext);
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy