QCStatement
using System;
namespace Org.BouncyCastle.Asn1.X509.Qualified
{
public class QCStatement : Asn1Encodable
{
private readonly DerObjectIdentifier m_statementId;
private readonly Asn1Encodable m_statementInfo;
public DerObjectIdentifier StatementId => m_statementId;
public Asn1Encodable StatementInfo => m_statementInfo;
public static QCStatement GetInstance(object obj)
{
if (obj == null)
return null;
QCStatement qCStatement = obj as QCStatement;
if (qCStatement != null)
return qCStatement;
return new QCStatement(Asn1Sequence.GetInstance(obj));
}
public static QCStatement GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit)
{
return new QCStatement(Asn1Sequence.GetInstance(taggedObject, declaredExplicit));
}
public static QCStatement GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit)
{
return new QCStatement(Asn1Sequence.GetTagged(taggedObject, declaredExplicit));
}
private QCStatement(Asn1Sequence seq)
{
int count = seq.Count;
if (count < 1 || count > 2)
throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq");
m_statementId = DerObjectIdentifier.GetInstance(seq[0]);
if (seq.Count > 1)
m_statementInfo = seq[1];
}
public QCStatement(DerObjectIdentifier qcStatementId)
: this(qcStatementId, null)
{
}
public QCStatement(DerObjectIdentifier qcStatementId, Asn1Encodable qcStatementInfo)
{
if (qcStatementId == null)
throw new ArgumentNullException("qcStatementId");
m_statementId = qcStatementId;
m_statementInfo = qcStatementInfo;
}
public override Asn1Object ToAsn1Object()
{
if (m_statementInfo != null)
return new DerSequence(m_statementId, m_statementInfo);
return new DerSequence(m_statementId);
}
}
}