Home | History | Annotate | Download | only in x509
      1 package org.bouncycastle.asn1.x509;
      2 
      3 import org.bouncycastle.asn1.ASN1EncodableVector;
      4 import org.bouncycastle.asn1.ASN1Object;
      5 import org.bouncycastle.asn1.ASN1Primitive;
      6 import org.bouncycastle.asn1.ASN1Sequence;
      7 import org.bouncycastle.asn1.ASN1TaggedObject;
      8 import org.bouncycastle.asn1.DERSequence;
      9 import org.bouncycastle.util.Strings;
     10 
     11 public class CRLDistPoint
     12     extends ASN1Object
     13 {
     14     ASN1Sequence  seq = null;
     15 
     16     public static CRLDistPoint getInstance(
     17         ASN1TaggedObject obj,
     18         boolean          explicit)
     19     {
     20         return getInstance(ASN1Sequence.getInstance(obj, explicit));
     21     }
     22 
     23     public static CRLDistPoint getInstance(
     24         Object  obj)
     25     {
     26         if (obj instanceof CRLDistPoint)
     27         {
     28             return (CRLDistPoint)obj;
     29         }
     30         else if (obj != null)
     31         {
     32             return new CRLDistPoint(ASN1Sequence.getInstance(obj));
     33         }
     34 
     35         return null;
     36     }
     37 
     38     private CRLDistPoint(
     39         ASN1Sequence seq)
     40     {
     41         this.seq = seq;
     42     }
     43 
     44     public CRLDistPoint(
     45         DistributionPoint[] points)
     46     {
     47         ASN1EncodableVector  v = new ASN1EncodableVector();
     48 
     49         for (int i = 0; i != points.length; i++)
     50         {
     51             v.add(points[i]);
     52         }
     53 
     54         seq = new DERSequence(v);
     55     }
     56 
     57     /**
     58      * Return the distribution points making up the sequence.
     59      *
     60      * @return DistributionPoint[]
     61      */
     62     public DistributionPoint[] getDistributionPoints()
     63     {
     64         DistributionPoint[]    dp = new DistributionPoint[seq.size()];
     65 
     66         for (int i = 0; i != seq.size(); i++)
     67         {
     68             dp[i] = DistributionPoint.getInstance(seq.getObjectAt(i));
     69         }
     70 
     71         return dp;
     72     }
     73 
     74     /**
     75      * Produce an object suitable for an ASN1OutputStream.
     76      * <pre>
     77      * CRLDistPoint ::= SEQUENCE SIZE {1..MAX} OF DistributionPoint
     78      * </pre>
     79      */
     80     public ASN1Primitive toASN1Primitive()
     81     {
     82         return seq;
     83     }
     84 
     85     public String toString()
     86     {
     87         StringBuffer buf = new StringBuffer();
     88         String       sep = Strings.lineSeparator();
     89 
     90         buf.append("CRLDistPoint:");
     91         buf.append(sep);
     92         DistributionPoint dp[] = getDistributionPoints();
     93         for (int i = 0; i != dp.length; i++)
     94         {
     95             buf.append("    ");
     96             buf.append(dp[i]);
     97             buf.append(sep);
     98         }
     99         return buf.toString();
    100     }
    101 }
    102