package com.braintreegateway;
public class PaymentMethodOptionsRequest extends Request {
private Boolean makeDefault;
private PaymentMethodRequest parent;
private String verificationMerchantAccountId;
private Boolean failOnDuplicatePaymentMethod;
private Boolean verifyCard;
private String verificationAmount;
private String venmoSdkSession;
private PaymentMethodOptionsPayPalRequest paymentMethodOptionsPayPalRequest;
public PaymentMethodOptionsRequest() {}
public PaymentMethodOptionsRequest(PaymentMethodRequest parent) {
this.parent = parent;
}
public PaymentMethodRequest done() {
return parent;
}
public Boolean getMakeDefault() {
return makeDefault;
}
public PaymentMethodOptionsRequest makeDefault(Boolean makeDefault) {
this.makeDefault = makeDefault;
return this;
}
public PaymentMethodOptionsRequest verificationMerchantAccountId(String verificationMerchantAccountId) {
this.verificationMerchantAccountId = verificationMerchantAccountId;
return this;
}
public PaymentMethodOptionsRequest failOnDuplicatePaymentMethod(Boolean failOnDuplicatePaymentMethod) {
this.failOnDuplicatePaymentMethod = failOnDuplicatePaymentMethod;
return this;
}
public PaymentMethodOptionsRequest verifyCard(Boolean verifyCard) {
this.verifyCard = verifyCard;
return this;
}
public PaymentMethodOptionsRequest verificationAmount(String verificationAmount) {
this.verificationAmount = verificationAmount;
return this;
}
public PaymentMethodOptionsRequest venmoSdkSession(String venmoSdkSession) {
this.venmoSdkSession = venmoSdkSession;
return this;
}
public PaymentMethodOptionsPayPalRequest paypal() {
paymentMethodOptionsPayPalRequest = new PaymentMethodOptionsPayPalRequest(this);
return paymentMethodOptionsPayPalRequest;
}
@Override
public String toXML() {
return buildRequest("options").toXML();
}
protected RequestBuilder buildRequest(String root) {
RequestBuilder builder = new RequestBuilder(root);
builder.addElement("failOnDuplicatePaymentMethod", failOnDuplicatePaymentMethod);
builder.addElement("verifyCard", verifyCard);
builder.addElement("verificationAmount", verificationAmount);
builder.addElement("verificationMerchantAccountId", verificationMerchantAccountId);
if (makeDefault != null && makeDefault.booleanValue()) {
builder.addElement("makeDefault", makeDefault);
}
builder.addElement("venmoSdkSession", venmoSdkSession);
builder.addElement("paypal", paymentMethodOptionsPayPalRequest);
return builder;
}
}