001package org.apache.commons.ssl.org.bouncycastle.asn1.crmf; 002 003import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1EncodableVector; 004import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Integer; 005import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Object; 006import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Primitive; 007import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Sequence; 008import org.apache.commons.ssl.org.bouncycastle.asn1.DERSequence; 009 010public class PKIPublicationInfo 011 extends ASN1Object 012{ 013 private ASN1Integer action; 014 private ASN1Sequence pubInfos; 015 016 private PKIPublicationInfo(ASN1Sequence seq) 017 { 018 action = ASN1Integer.getInstance(seq.getObjectAt(0)); 019 pubInfos = ASN1Sequence.getInstance(seq.getObjectAt(1)); 020 } 021 022 public static PKIPublicationInfo getInstance(Object o) 023 { 024 if (o instanceof PKIPublicationInfo) 025 { 026 return (PKIPublicationInfo)o; 027 } 028 029 if (o != null) 030 { 031 return new PKIPublicationInfo(ASN1Sequence.getInstance(o)); 032 } 033 034 return null; 035 } 036 037 public ASN1Integer getAction() 038 { 039 return action; 040 } 041 042 public SinglePubInfo[] getPubInfos() 043 { 044 if (pubInfos == null) 045 { 046 return null; 047 } 048 049 SinglePubInfo[] results = new SinglePubInfo[pubInfos.size()]; 050 051 for (int i = 0; i != results.length; i++) 052 { 053 results[i] = SinglePubInfo.getInstance(pubInfos.getObjectAt(i)); 054 } 055 056 return results; 057 } 058 059 /** 060 * <pre> 061 * PKIPublicationInfo ::= SEQUENCE { 062 * action INTEGER { 063 * dontPublish (0), 064 * pleasePublish (1) }, 065 * pubInfos SEQUENCE SIZE (1..MAX) OF SinglePubInfo OPTIONAL } 066 * -- pubInfos MUST NOT be present if action is "dontPublish" 067 * -- (if action is "pleasePublish" and pubInfos is omitted, 068 * -- "dontCare" is assumed) 069 * </pre> 070 * @return a basic ASN.1 object representation. 071 */ 072 public ASN1Primitive toASN1Primitive() 073 { 074 ASN1EncodableVector v = new ASN1EncodableVector(); 075 076 v.add(action); 077 v.add(pubInfos); 078 079 return new DERSequence(v); 080 } 081}