DirectoryString
using System;
namespace Org.BouncyCastle.Asn1.X500
{
public class DirectoryString : Asn1Encodable, IAsn1Choice, IAsn1String
{
private readonly DerStringBase m_str;
public static DirectoryString GetInstance(object obj)
{
return Asn1Utilities.GetInstanceChoice(obj, GetOptional);
}
public static DirectoryString GetInstance(Asn1TaggedObject obj, bool isExplicit)
{
return Asn1Utilities.GetInstanceChoice(obj, isExplicit, GetInstance);
}
public static DirectoryString GetOptional(Asn1Encodable element)
{
if (element == null)
throw new ArgumentNullException("element");
DirectoryString directoryString = element as DirectoryString;
if (directoryString != null)
return directoryString;
DerStringBase optionalInnerObject = GetOptionalInnerObject(element);
if (optionalInnerObject != null)
return new DirectoryString(optionalInnerObject);
return null;
}
public static DirectoryString GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit)
{
return Asn1Utilities.GetTaggedChoice(taggedObject, declaredExplicit, GetInstance);
}
private static DerStringBase GetOptionalInnerObject(Asn1Encodable element)
{
return (DerStringBase)(DerT61String.GetOptional(element) ?? DerPrintableString.GetOptional(element) ?? DerUniversalString.GetOptional(element) ?? ((object)DerUtf8String.GetOptional(element)) ?? ((object)(DerBmpString.GetOptional(element) ?? null)));
}
private DirectoryString(DerStringBase str)
{
m_str = str;
}
public DirectoryString(string str)
{
m_str = new DerUtf8String(str);
}
public string GetString()
{
return m_str.GetString();
}
public override Asn1Object ToAsn1Object()
{
return m_str.ToAsn1Object();
}
}
}