
com.prowidesoftware.swift.model.mx.dic.CustomerDirectDebitInitiationV09 Maven / Gradle / Ivy
package com.prowidesoftware.swift.model.mx.dic;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* Scope
* The CustomerDirectDebitInitiation message is sent by the initiating party to the forwarding agent or creditor agent. It is used to request single or bulk collection(s) of funds from one or various debtor's account(s) for a creditor.
* Usage
* The CustomerDirectDebitInitiation message can contain one or more direct debit instructions.
* The message can be used in a direct or a relay scenario:
* - In a direct scenario, the message is sent directly to the creditor agent. The creditor agent is the account servicer of the creditor.
* - In a relay scenario, the message is sent to a forwarding agent. The forwarding agent acts as a concentrating financial institution. It will forward the CustomerDirectDebitInitiation message to the creditor agent.
* The message can also be used by an initiating party that has authority to send the message on behalf of the creditor. This caters for example for the scenario of a payments factory initiating all payments on behalf of a large corporate.
* The CustomerDirectDebitInitiation message can be used in domestic and cross-border scenarios.
* The CustomerDirectDebitInitiation may or may not contain mandate related information, i.e. extracts from a mandate, such as MandateIdentification or DateOfSignature. The CustomerDirectDebitInitiation message must not be considered as a mandate.
* The CustomerDirectDebitInitiation message must not be used by the creditor agent to execute the direct debit instruction(s). The FIToFICustomerDirectDebit message must be used instead.
*
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "CustomerDirectDebitInitiationV09", propOrder = {
"grpHdr",
"pmtInf",
"splmtryData"
})
public class CustomerDirectDebitInitiationV09 {
@XmlElement(name = "GrpHdr", required = true)
protected GroupHeader83 grpHdr;
@XmlElement(name = "PmtInf", required = true)
protected List pmtInf;
@XmlElement(name = "SplmtryData")
protected List splmtryData;
/**
* Gets the value of the grpHdr property.
*
* @return
* possible object is
* {@link GroupHeader83 }
*
*/
public GroupHeader83 getGrpHdr() {
return grpHdr;
}
/**
* Sets the value of the grpHdr property.
*
* @param value
* allowed object is
* {@link GroupHeader83 }
*
*/
public CustomerDirectDebitInitiationV09 setGrpHdr(GroupHeader83 value) {
this.grpHdr = value;
return this;
}
/**
* Gets the value of the pmtInf property.
*
*
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a set
method for the pmtInf property.
*
*
* For example, to add a new item, do as follows:
*
* getPmtInf().add(newItem);
*
*
*
*
* Objects of the following type(s) are allowed in the list
* {@link PaymentInstruction37 }
*
*
*/
public List getPmtInf() {
if (pmtInf == null) {
pmtInf = new ArrayList();
}
return this.pmtInf;
}
/**
* Gets the value of the splmtryData property.
*
*
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a set
method for the splmtryData property.
*
*
* For example, to add a new item, do as follows:
*
* getSplmtryData().add(newItem);
*
*
*
*
* Objects of the following type(s) are allowed in the list
* {@link SupplementaryData1 }
*
*
*/
public List getSplmtryData() {
if (splmtryData == null) {
splmtryData = new ArrayList();
}
return this.splmtryData;
}
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
}
@Override
public boolean equals(Object that) {
return EqualsBuilder.reflectionEquals(this, that);
}
@Override
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this);
}
/**
* Adds a new item to the pmtInf list.
* @see #getPmtInf()
*
*/
public CustomerDirectDebitInitiationV09 addPmtInf(PaymentInstruction37 pmtInf) {
getPmtInf().add(pmtInf);
return this;
}
/**
* Adds a new item to the splmtryData list.
* @see #getSplmtryData()
*
*/
public CustomerDirectDebitInitiationV09 addSplmtryData(SupplementaryData1 splmtryData) {
getSplmtryData().add(splmtryData);
return this;
}
}