package org.bouncycastle.asn1.x509;
import org.bouncycastle.asn1.ASN1Sequence;
import org.bouncycastle.asn1.ASN1TaggedObject;
import org.bouncycastle.asn1.DEREncodable;
import org.bouncycastle.asn1.DERObject;
public class GeneralNames
implements DEREncodable
{
ASN1Sequence seq;
boolean isInsideImplicit = false;
public static GeneralNames getInstance(
Object obj)
{
if (obj == null || obj instanceof GeneralNames)
{
return (GeneralNames)obj;
}
if (obj instanceof ASN1Sequence)
{
return new GeneralNames((ASN1Sequence)obj);
}
throw new IllegalArgumentException("illegal object in getInstance: " + obj.getClass().getName());
}
public static GeneralNames getInstance(
ASN1TaggedObject obj,
boolean explicit)
{
return getInstance(ASN1Sequence.getInstance(obj, explicit));
}
public GeneralNames(
ASN1Sequence seq)
{
this.seq = seq;
}
/*
* this is a hack! But it will have to do until the ambiguity rules
* get sorted out for implicit/explicit tagging...
* @deprecated
*/
public void markInsideImplicit(
boolean isInsideImplicit)
{
this.isInsideImplicit = isInsideImplicit;
}
/**
* Produce an object suitable for an ASN1OutputStream.
* <pre>
* GeneralNames ::= SEQUENCE SIZE {1..MAX} OF GeneralName
* </pre>
*/
public DERObject getDERObject()
{
return seq;
}
}