001package org.apache.commons.ssl.org.bouncycastle.asn1.dvcs; 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.ASN1TaggedObject; 008import org.apache.commons.ssl.org.bouncycastle.asn1.DERSequence; 009import org.apache.commons.ssl.org.bouncycastle.asn1.x509.GeneralName; 010 011/** 012 * <pre> 013 * DVCSRequest ::= SEQUENCE { 014 * requestInformation DVCSRequestInformation, 015 * data Data, 016 * transactionIdentifier GeneralName OPTIONAL 017 * } 018 * </pre> 019 */ 020 021public class DVCSRequest 022 extends ASN1Object 023{ 024 025 private DVCSRequestInformation requestInformation; 026 private Data data; 027 private GeneralName transactionIdentifier; 028 029 public DVCSRequest(DVCSRequestInformation requestInformation, Data data) 030 { 031 this(requestInformation, data, null); 032 } 033 034 public DVCSRequest(DVCSRequestInformation requestInformation, Data data, GeneralName transactionIdentifier) 035 { 036 this.requestInformation = requestInformation; 037 this.data = data; 038 this.transactionIdentifier = transactionIdentifier; 039 } 040 041 private DVCSRequest(ASN1Sequence seq) 042 { 043 requestInformation = DVCSRequestInformation.getInstance(seq.getObjectAt(0)); 044 data = Data.getInstance(seq.getObjectAt(1)); 045 if (seq.size() > 2) 046 { 047 transactionIdentifier = GeneralName.getInstance(seq.getObjectAt(2)); 048 } 049 } 050 051 public static DVCSRequest getInstance(Object obj) 052 { 053 if (obj instanceof DVCSRequest) 054 { 055 return (DVCSRequest)obj; 056 } 057 else if (obj != null) 058 { 059 return new DVCSRequest(ASN1Sequence.getInstance(obj)); 060 } 061 062 return null; 063 } 064 065 public static DVCSRequest getInstance( 066 ASN1TaggedObject obj, 067 boolean explicit) 068 { 069 return getInstance(ASN1Sequence.getInstance(obj, explicit)); 070 } 071 072 public ASN1Primitive toASN1Primitive() 073 { 074 ASN1EncodableVector v = new ASN1EncodableVector(); 075 v.add(requestInformation); 076 v.add(data); 077 if (transactionIdentifier != null) 078 { 079 v.add(transactionIdentifier); 080 } 081 return new DERSequence(v); 082 } 083 084 public String toString() 085 { 086 return "DVCSRequest {\n" + 087 "requestInformation: " + requestInformation + "\n" + 088 "data: " + data + "\n" + 089 (transactionIdentifier != null ? "transactionIdentifier: " + transactionIdentifier + "\n" : "") + 090 "}\n"; 091 } 092 093 public Data getData() 094 { 095 return data; 096 } 097 098 public DVCSRequestInformation getRequestInformation() 099 { 100 return requestInformation; 101 } 102 103 public GeneralName getTransactionIdentifier() 104 { 105 return transactionIdentifier; 106 } 107}