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

package org.bouncycastle.oer.its.ieee1609dot2;

import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.ASN1Sequence;
import org.bouncycastle.oer.its.ieee1609dot2.basetypes.Signature;
import org.bouncycastle.oer.its.ieee1609dot2.basetypes.UINT8;

public class ExplicitCertificate extends CertificateBase
{
    public ExplicitCertificate(final CertificateBase certificateBase) {
        this(certificateBase.getVersion(), certificateBase.getIssuer(), certificateBase.getToBeSigned(), certificateBase.getSignature());
    }
    
    public ExplicitCertificate(final UINT8 uint8, final IssuerIdentifier issuerIdentifier, final ToBeSignedCertificate toBeSignedCertificate, final Signature signature) {
        super(uint8, CertificateType.explicit, issuerIdentifier, toBeSignedCertificate, signature);
    }
    
    protected ExplicitCertificate(final ASN1Sequence asn1Sequence) {
        super(asn1Sequence);
        if (!this.getType().equals(CertificateType.explicit)) {
            throw new IllegalArgumentException("object was certificate base but the type was not explicit");
        }
    }
    
    public static ExplicitCertificate getInstance(final Object o) {
        if (o instanceof ExplicitCertificate) {
            return (ExplicitCertificate)o;
        }
        if (o != null) {
            return new ExplicitCertificate(ASN1Sequence.getInstance(o));
        }
        return null;
    }
}
