CsobPaymentFileExporter.java
package sk.iway.iwcm.ebanking.file_export;
import java.text.SimpleDateFormat;
import java.util.Date;
import sk.iway.iwcm.Tools;
import sk.iway.iwcm.ebanking.Payment;
/**
* CsobPaymentFileExporter.java
*
* Exporter with CSOB specific behaviour
*
* for public API, @see PaymentFileExporter
*
*@Title webjet4_repair
*@Company Interway s.r.o. (www.interway.sk)
*@Copyright Interway s.r.o. (c) 2001-2009
*@author $Author: murbanec $
*@version $Revision: 1.1 $
*@created Date: 25.9.2009 15:27:06
*@modified $Date: 2009/09/30 13:17:33 $
*/
class CsobPaymentFileExporter extends PaymentFileExporter
{
static final String SINGLE_PAYMENT_ID = "11";
static final String REPETITIVE_PAYMENT_ID = "32";
static final String CSV_DELIMITER_SEQUENCE = "|";
private boolean isSourceAccountIncorrect()
{
return getSourceAccount() == null ||
Tools.isAnyEmpty(getSourceAccount().getAccountPrefix(), getSourceAccount().getAccountNumber());
}
@Override
protected String getExporterIdentifierForFileName()
{
return "csob_tps";
}
@Override
public String createRowFrom(Payment payment)
{
if (isSourceAccountIncorrect())
throw new IllegalStateException("Call setAccount() first - source account as Payment's account ");
return new StringBuilder().
append(SINGLE_PAYMENT_ID).
append(CSV_DELIMITER_SEQUENCE).
append(getSourceAccount().getAccountNumber()).
append(CSV_DELIMITER_SEQUENCE).
append(new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())).
append(CSV_DELIMITER_SEQUENCE).
append(payment.getAmountString()).
append(CSV_DELIMITER_SEQUENCE).
append(payment.getAccountNumber()).
append(CSV_DELIMITER_SEQUENCE).
append(payment.getBankCode()).
append(CSV_DELIMITER_SEQUENCE).
append(payment.getConstantSymbol()).
append(CSV_DELIMITER_SEQUENCE).
append(payment.getVariableSymbol()).
append(CSV_DELIMITER_SEQUENCE).
append(' '). //should be a "payer's variable symbol", no clue what does that actually mean
append(CSV_DELIMITER_SEQUENCE).
append(payment.getSpecificSymbol()).
append(CSV_DELIMITER_SEQUENCE).
append(' ').//should be a "payer's specific symbol", no clue again, left blank
append(CSV_DELIMITER_SEQUENCE).
append(payment.getDescriptionFormatted(40, true)).
append(CSV_DELIMITER_SEQUENCE).
append(' ').//ZPRAVA_PRIJEMCI2
append(CSV_DELIMITER_SEQUENCE).
append(' ').//ZPRAVA_PRIJEMCI3
append(CSV_DELIMITER_SEQUENCE).
append(' ').//ZPRAVA_PRIJEMCI4
append(CSV_DELIMITER_SEQUENCE).
append(' ').//ZPRAVA_PLATCI
append(System.getProperty("line.separator")).
toString();
}
@Override
protected String getFileExtension()
{
return "txt";
}
}