package com.braintreegateway;
import com.braintreegateway.util.NodeWrapper;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
public class Disbursement {
private final String id;
private final String exceptionMessage;
private final Calendar disbursementDate;
private final String followUpAction;
private final List<String> transactionIds;
private final Boolean success;
private final Boolean retry;
private final BigDecimal amount;
private MerchantAccount merchantAccount;
public Disbursement(NodeWrapper node) {
id = node.findString("id");
exceptionMessage = node.findString("exception-message");
disbursementDate = node.findDate("disbursement-date");
followUpAction = node.findString("follow-up-action");
success = node.findBoolean("success");
retry = node.findBoolean("retry");
amount = node.findBigDecimal("amount");
merchantAccount = new MerchantAccount(node.findFirst("merchant-account"));
transactionIds = new ArrayList<String>();
for (NodeWrapper transactionIdNode : node.findAll("transaction-ids/item")) {
transactionIds.add(transactionIdNode.findString("."));
}
}
public String getId() {
return id;
}
public String getExceptionMessage() {
return exceptionMessage;
}
public Calendar getDisbursementDate() {
return disbursementDate;
}
public String getFollowUpAction() {
return followUpAction;
}
public Boolean getRetry() {
return retry;
}
public Boolean getSuccess() {
return success;
}
public BigDecimal getAmount() {
return amount;
}
public List<String> getTransactionIds() {
return transactionIds;
}
public MerchantAccount getMerchantAccount() {
return merchantAccount;
}
public ResourceCollection<Transaction> getTransactions(BraintreeGateway gateway) {
TransactionSearchRequest searchRequest = new TransactionSearchRequest().
ids().in(transactionIds);
return gateway.transaction().search(searchRequest);
}
}