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}