org.bouncycastle.asn1.x509.qualified.Iso4217CurrencyCode Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bcprov-ext-debug-jdk18on Show documentation
Show all versions of bcprov-ext-debug-jdk18on Show documentation
The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms. This jar contains JCE provider and lightweight API for the Bouncy Castle Cryptography APIs for Java 1.8 and later with debug enabled.
The newest version!
package org.bouncycastle.asn1.x509.qualified;
import org.bouncycastle.asn1.ASN1Choice;
import org.bouncycastle.asn1.ASN1Encodable;
import org.bouncycastle.asn1.ASN1Integer;
import org.bouncycastle.asn1.ASN1Object;
import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.ASN1PrintableString;
import org.bouncycastle.asn1.DERPrintableString;
/**
* The Iso4217CurrencyCode object.
*
* Iso4217CurrencyCode ::= CHOICE {
* alphabetic PrintableString (SIZE 3), --Recommended
* numeric INTEGER (1..999) }
* -- Alphabetic or numeric currency code as defined in ISO 4217
* -- It is recommended that the Alphabetic form is used
*
*/
public class Iso4217CurrencyCode
extends ASN1Object
implements ASN1Choice
{
final int ALPHABETIC_MAXSIZE = 3;
final int NUMERIC_MINSIZE = 1;
final int NUMERIC_MAXSIZE = 999;
ASN1Encodable obj;
int numeric;
public static Iso4217CurrencyCode getInstance(
Object obj)
{
if (obj == null || obj instanceof Iso4217CurrencyCode)
{
return (Iso4217CurrencyCode)obj;
}
if (obj instanceof ASN1Integer)
{
ASN1Integer numericobj = ASN1Integer.getInstance(obj);
int numeric = numericobj.intValueExact();
return new Iso4217CurrencyCode(numeric);
}
else
if (obj instanceof ASN1PrintableString)
{
ASN1PrintableString alphabetic = ASN1PrintableString.getInstance(obj);
return new Iso4217CurrencyCode(alphabetic.getString());
}
throw new IllegalArgumentException("unknown object in getInstance");
}
public Iso4217CurrencyCode(
int numeric)
{
if (numeric > NUMERIC_MAXSIZE || numeric < NUMERIC_MINSIZE)
{
throw new IllegalArgumentException("wrong size in numeric code : not in (" +NUMERIC_MINSIZE +".."+ NUMERIC_MAXSIZE +")");
}
obj = new ASN1Integer(numeric);
}
public Iso4217CurrencyCode(
String alphabetic)
{
if (alphabetic.length() > ALPHABETIC_MAXSIZE)
{
throw new IllegalArgumentException("wrong size in alphabetic code : max size is " + ALPHABETIC_MAXSIZE);
}
obj = new DERPrintableString(alphabetic);
}
public boolean isAlphabetic()
{
return obj instanceof ASN1PrintableString;
}
public String getAlphabetic()
{
return ((ASN1PrintableString)obj).getString();
}
public int getNumeric()
{
return ((ASN1Integer)obj).intValueExact();
}
public ASN1Primitive toASN1Primitive()
{
return obj.toASN1Primitive();
}
}