All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bouncycastle.asn1.x509.qualified.Iso4217CurrencyCode Maven / Gradle / Ivy

Go to download

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(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy