// 
// Decompiled by Procyon v0.6.0
// 

package org.bouncycastle.asn1;

public class DLExternal extends ASN1External
{
    @Deprecated
    public DLExternal(final ASN1EncodableVector asn1EncodableVector) {
        this(DLFactory.createSequence(asn1EncodableVector));
    }
    
    public DLExternal(final DLSequence dlSequence) {
        super(dlSequence);
    }
    
    public DLExternal(final ASN1ObjectIdentifier asn1ObjectIdentifier, final ASN1Integer asn1Integer, final ASN1Primitive asn1Primitive, final DERTaggedObject derTaggedObject) {
        super(asn1ObjectIdentifier, asn1Integer, asn1Primitive, derTaggedObject);
    }
    
    public DLExternal(final ASN1ObjectIdentifier asn1ObjectIdentifier, final ASN1Integer asn1Integer, final ASN1Primitive asn1Primitive, final int n, final ASN1Primitive asn1Primitive2) {
        super(asn1ObjectIdentifier, asn1Integer, asn1Primitive, n, asn1Primitive2);
    }
    
    @Override
    ASN1Sequence buildSequence() {
        final ASN1EncodableVector asn1EncodableVector = new ASN1EncodableVector(4);
        if (this.directReference != null) {
            asn1EncodableVector.add(this.directReference);
        }
        if (this.indirectReference != null) {
            asn1EncodableVector.add(this.indirectReference);
        }
        if (this.dataValueDescriptor != null) {
            asn1EncodableVector.add(this.dataValueDescriptor.toDLObject());
        }
        asn1EncodableVector.add(new DLTaggedObject(0 == this.encoding, this.encoding, this.externalContent));
        return new DLSequence(asn1EncodableVector);
    }
    
    @Override
    ASN1Primitive toDLObject() {
        return this;
    }
}
