GeneralNames.java revision e6bf3e8dfa2804891a82075cb469b736321b4827
1package org.bouncycastle.asn1.x509; 2 3import org.bouncycastle.asn1.ASN1Object; 4import org.bouncycastle.asn1.ASN1Primitive; 5import org.bouncycastle.asn1.ASN1Sequence; 6import org.bouncycastle.asn1.ASN1TaggedObject; 7import org.bouncycastle.asn1.DERSequence; 8 9public class GeneralNames 10 extends ASN1Object 11{ 12 private final GeneralName[] names; 13 14 public static GeneralNames getInstance( 15 Object obj) 16 { 17 if (obj instanceof GeneralNames) 18 { 19 return (GeneralNames)obj; 20 } 21 22 if (obj != null) 23 { 24 return new GeneralNames(ASN1Sequence.getInstance(obj)); 25 } 26 27 return null; 28 } 29 30 public static GeneralNames getInstance( 31 ASN1TaggedObject obj, 32 boolean explicit) 33 { 34 return getInstance(ASN1Sequence.getInstance(obj, explicit)); 35 } 36 37 /** 38 * Construct a GeneralNames object containing one GeneralName. 39 * 40 * @param name the name to be contained. 41 */ 42 public GeneralNames( 43 GeneralName name) 44 { 45 this.names = new GeneralName[] { name }; 46 } 47 48 49 public GeneralNames( 50 GeneralName[] names) 51 { 52 this.names = names; 53 } 54 55 private GeneralNames( 56 ASN1Sequence seq) 57 { 58 this.names = new GeneralName[seq.size()]; 59 60 for (int i = 0; i != seq.size(); i++) 61 { 62 names[i] = GeneralName.getInstance(seq.getObjectAt(i)); 63 } 64 } 65 66 public GeneralName[] getNames() 67 { 68 GeneralName[] tmp = new GeneralName[names.length]; 69 70 System.arraycopy(names, 0, tmp, 0, names.length); 71 72 return tmp; 73 } 74 75 /** 76 * Produce an object suitable for an ASN1OutputStream. 77 * <pre> 78 * GeneralNames ::= SEQUENCE SIZE {1..MAX} OF GeneralName 79 * </pre> 80 */ 81 public ASN1Primitive toASN1Primitive() 82 { 83 return new DERSequence(names); 84 } 85 86 public String toString() 87 { 88 StringBuffer buf = new StringBuffer(); 89 String sep = System.getProperty("line.separator"); 90 91 buf.append("GeneralNames:"); 92 buf.append(sep); 93 94 for (int i = 0; i != names.length; i++) 95 { 96 buf.append(" "); 97 buf.append(names[i]); 98 buf.append(sep); 99 } 100 return buf.toString(); 101 } 102} 103