/* $Id: SyntaxCtr.java,v 1.1 2011/05/04 22:37:55 willuhn Exp $
This file is part of HBCI4Java
Copyright (C) 2001-2008 Stefan Palme
HBCI4Java is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
HBCI4Java is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package org.kapott.hbci.datatypes;
import org.kapott.hbci.exceptions.InvalidArgumentException;
import org.kapott.hbci.exceptions.InvalidUserDataException;
import org.kapott.hbci.manager.HBCIUtilsInternal;
/* @brief class for storing data of type "country"
contains specification for datatype "ctr";
this is the representation of a country
*/
// Speicherung des HBCI-MSG-Formats
public final class SyntaxCtr
extends SyntaxDE
{
/** @brief returns the ISO-country-code for a country
@param x String-representation of the country (e.g. DE or US).
@return ISO-three-digit-code for this country
*/
public static String getCode(String x)
{
String ret=null;
if (x.equals("DE")) {
ret="280";
} else if (x.equals("AT")) {
ret="040";
} else if (x.equals("FR")) {
ret="250";
} else if (x.equals("BE")) {
ret="056";
} else if (x.equals("BG")) {
ret="100";
} else if (x.equals("DK")) {
ret="208";
} else if (x.equals("FI")) {
ret="246";
} else if (x.equals("GR")) {
ret="300";
} else if (x.equals("GB")) {
ret="826";
} else if (x.equals("IE")) {
ret="372";
} else if (x.equals("IS")) {
ret="352";
} else if (x.equals("IT")) {
ret="380";
} else if (x.equals("JP")) {
ret="392";
} else if (x.equals("CA")) {
ret="124";
} else if (x.equals("HR")) {
ret="191";
} else if (x.equals("LI")) {
ret="438";
} else if (x.equals("LU")) {
ret="442";
} else if (x.equals("NL")) {
ret="528";
} else if (x.equals("NO")) {
ret="578";
} else if (x.equals("PL")) {
ret="616";
} else if (x.equals("PT")) {
ret="620";
} else if (x.equals("RO")) {
ret="642";
} else if (x.equals("RU")) {
ret="643";
} else if (x.equals("SE")) {
ret="752";
} else if (x.equals("CH")) {
ret="756";
} else if (x.equals("SK")) {
ret="703";
} else if (x.equals("SI")) {
ret="705";
} else if (x.equals("ES")) {
ret="724";
} else if (x.equals("CZ")) {
ret="203";
} else if (x.equals("TR")) {
ret="792";
} else if (x.equals("HU")) {
ret="348";
} else if (x.equals("US")) {
ret="840";
} else if (x.equals("EU")) {
ret="978";
} else {
throw new InvalidUserDataException(HBCIUtilsInternal.getLocMsg("EXC_DT_UNNKOWN_CTR",x));
}
return ret;
}
public SyntaxCtr(String x, int minsize, int maxsize)
{
super(getCode(x.trim()),3,3);
}
public void init(String x, int minsize, int maxsize)
{
super.init(getCode(x.trim()),3,3);
}
// --------------------------------------------------------------------------------
public static String getName(String x)
{
String ret=null;
if (x.equals("280")) {
ret="DE";
} else if (x.equals("040")) {
ret="AT";
} else if (x.equals("250")) {
ret="FR";
} else if (x.equals("056")) {
ret="BE";
} else if (x.equals("100")) {
ret="BG";
} else if (x.equals("208")) {
ret="DK";
} else if (x.equals("246")) {
ret="FI";
} else if (x.equals("300")) {
ret="GR";
} else if (x.equals("826")) {
ret="GB";
} else if (x.equals("372")) {
ret="IE";
} else if (x.equals("352")) {
ret="IS";
} else if (x.equals("380")) {
ret="IT";
} else if (x.equals("392")) {
ret="JP";
} else if (x.equals("124")) {
ret="CA";
} else if (x.equals("191")) {
ret="HR";
} else if (x.equals("438")) {
ret="LI";
} else if (x.equals("442")) {
ret="LU";
} else if (x.equals("528")) {
ret="NL";
} else if (x.equals("578")) {
ret="NO";
} else if (x.equals("616")) {
ret="PL";
} else if (x.equals("620")) {
ret="PT";
} else if (x.equals("642")) {
ret="RO";
} else if (x.equals("643")) {
ret="RU";
} else if (x.equals("752")) {
ret="SE";
} else if (x.equals("756")) {
ret="CH";
} else if (x.equals("703")) {
ret="SK";
} else if (x.equals("705")) {
ret="SI";
} else if (x.equals("724")) {
ret="ES";
} else if (x.equals("203")) {
ret="CZ";
} else if (x.equals("792")) {
ret="TR";
} else if (x.equals("348")) {
ret="HU";
} else if (x.equals("840")) {
ret="US";
} else if (x.equals("978")) {
ret="EU";
} else {
throw new InvalidArgumentException(HBCIUtilsInternal.getLocMsg("EXC_DT_UNNKOWN_CTR",x));
}
return ret;
}
private void initData(StringBuffer res,int minsize,int maxsize)
{
int startidx = skipPreDelim(res);
int endidx = findNextDelim(res, startidx);
String st = res.substring(startidx, endidx);
getName(st);
setContent(st,3,3);
res.delete(0,endidx);
}
public SyntaxCtr(StringBuffer res, int minsize, int maxsize)
{
initData(res,minsize,maxsize);
}
public void init(StringBuffer res, int minsize, int maxsize)
{
initData(res,minsize,maxsize);
}
public String toString()
{
String c=getContent();
return (c==null)?"":getName(c);
}
}