package com.braintreegateway; import java.util.HashMap; import java.util.Map; public class OAuthConnectUrlRequest extends Request { private String merchantId; private String scope; private String clientId; private String state; private String redirectUri; private String landingPage; private String[] paymentMethods = new String[0]; private OAuthConnectUrlUserRequest user; private OAuthConnectUrlBusinessRequest business; public OAuthConnectUrlRequest merchantId(String merchantId) { this.merchantId = merchantId; return this; } public OAuthConnectUrlRequest scope(String scope) { this.scope = scope; return this; } public OAuthConnectUrlRequest clientId(String clientId) { this.clientId = clientId; return this; } public OAuthConnectUrlRequest state(String state) { this.state = state; return this; } public OAuthConnectUrlRequest landingPage(String landingPage) { this.landingPage = landingPage; return this; } public OAuthConnectUrlRequest redirectUri(String redirectUri) { this.redirectUri = redirectUri; return this; } public OAuthConnectUrlRequest paymentMethods(String[] paymentMethods) { this.paymentMethods = paymentMethods; return this; } public OAuthConnectUrlUserRequest user() { user = new OAuthConnectUrlUserRequest(this); return this.user; } public OAuthConnectUrlBusinessRequest business() { business = new OAuthConnectUrlBusinessRequest(this); return this.business; } @Override public String toQueryString() { RequestBuilder builder = new RequestBuilder(""). addTopLevelElement("merchantId", merchantId). addTopLevelElement("scope", scope). addTopLevelElement("clientId", clientId). addTopLevelElement("state", state). addTopLevelElement("redirectUri", redirectUri). addTopLevelElement("landingPage", landingPage); for (String paymentMethod : paymentMethods) { builder.addTopLevelElement("payment_methods[]", paymentMethod); } builder.addElement("user", user). addElement("business", business); return builder.toQueryString(); } }