001package org.apache.commons.ssl.org.bouncycastle.asn1.icao;
002
003import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1EncodableVector;
004import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Object;
005import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Primitive;
006import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Sequence;
007import org.apache.commons.ssl.org.bouncycastle.asn1.DERPrintableString;
008import org.apache.commons.ssl.org.bouncycastle.asn1.DERSequence;
009
010public class LDSVersionInfo
011    extends ASN1Object
012{
013    private DERPrintableString ldsVersion;
014    private DERPrintableString unicodeVersion;
015
016    public LDSVersionInfo(String ldsVersion, String unicodeVersion)
017    {
018        this.ldsVersion = new DERPrintableString(ldsVersion);
019        this.unicodeVersion = new DERPrintableString(unicodeVersion);
020    }
021
022    private LDSVersionInfo(ASN1Sequence seq)
023    {
024        if (seq.size() != 2)
025        {
026            throw new IllegalArgumentException("sequence wrong size for LDSVersionInfo");
027        }
028
029        this.ldsVersion = DERPrintableString.getInstance(seq.getObjectAt(0));
030        this.unicodeVersion = DERPrintableString.getInstance(seq.getObjectAt(1));
031    }
032
033    public static LDSVersionInfo getInstance(Object obj)
034    {
035        if (obj instanceof LDSVersionInfo)
036        {
037            return (LDSVersionInfo)obj;
038        }
039        else if (obj != null)
040        {
041            return new LDSVersionInfo(ASN1Sequence.getInstance(obj));
042        }
043
044        return null;
045    }
046
047    public String getLdsVersion()
048    {
049        return ldsVersion.getString();
050    }
051
052    public String getUnicodeVersion()
053    {
054        return unicodeVersion.getString();
055    }
056
057    /**
058     * <pre>
059     * LDSVersionInfo ::= SEQUENCE {
060     *    ldsVersion PRINTABLE STRING
061     *    unicodeVersion PRINTABLE STRING
062     *  }
063     * </pre>
064     * @return
065     */
066    public ASN1Primitive toASN1Primitive()
067    {
068        ASN1EncodableVector v = new ASN1EncodableVector();
069
070        v.add(ldsVersion);
071        v.add(unicodeVersion);
072
073        return new DERSequence(v);
074    }
075}