package org.bouncycastle.asn1.esf;
import org.bouncycastle.asn1.*;
public class SignaturePolicyIdentifier
extends ASN1Encodable
{
private SignaturePolicyId signaturePolicyId;
private boolean isSignaturePolicyImplied;
public static SignaturePolicyIdentifier getInstance(
Object obj)
{
if (obj == null || obj instanceof SignaturePolicyIdentifier)
{
return (SignaturePolicyIdentifier) obj;
}
else if (obj instanceof ASN1Sequence)
{
return new SignaturePolicyIdentifier(SignaturePolicyId.getInstance(obj));
}
else if (obj instanceof ASN1Null)
{
return new SignaturePolicyIdentifier();
}
throw new IllegalArgumentException(
"unknown object in 'SignaturePolicyIdentifier' factory: "
+ obj.getClass().getName() + ".");
}
public SignaturePolicyIdentifier()
{
this.isSignaturePolicyImplied = true;
}
public SignaturePolicyIdentifier(
SignaturePolicyId signaturePolicyId)
{
this.signaturePolicyId = signaturePolicyId;
this.isSignaturePolicyImplied = false;
}
public SignaturePolicyId getSignaturePolicyId()
{
return signaturePolicyId;
}
public boolean isSignaturePolicyImplied()
{
return isSignaturePolicyImplied;
}
SignaturePolicyIdentifier ::= CHOICE{
SignaturePolicyId SignaturePolicyId,
SignaturePolicyImplied SignaturePolicyImplied }
SignaturePolicyImplied ::= NULL
/**
* <pre>
* SignaturePolicyIdentifier ::= CHOICE{
* SignaturePolicyId SignaturePolicyId,
* SignaturePolicyImplied SignaturePolicyImplied }
*
* SignaturePolicyImplied ::= NULL
* </pre>
*/
public DERObject toASN1Object()
{
if (isSignaturePolicyImplied)
{
return new DERNull();
}
else
{
return signaturePolicyId.getDERObject();
}
}
}