BerSet
using Org.BouncyCastle.Utilities.Collections;
using System;
using System.Collections.Generic;
namespace Org.BouncyCastle.Asn1
{
public class BerSet : DLSet
{
public new static readonly BerSet Empty = new BerSet();
public new static BerSet FromCollection(IReadOnlyCollection<Asn1Encodable> elements)
{
if (elements.Count >= 1)
return new BerSet(elements);
return Empty;
}
public new static BerSet FromElement(Asn1Encodable element)
{
return new BerSet(element);
}
public new static BerSet FromVector(Asn1EncodableVector elementVector)
{
if (elementVector.Count >= 1)
return new BerSet(elementVector);
return Empty;
}
public new static BerSet Map<T>(T[] ts, Func<T, Asn1Encodable> func)
{
if (ts.Length >= 1)
return new BerSet(false, CollectionUtilities.Map(ts, func));
return Empty;
}
public new static BerSet Map<T>(IReadOnlyCollection<T> c, Func<T, Asn1Encodable> func)
{
if (c.Count >= 1)
return new BerSet(false, CollectionUtilities.Map(c, func));
return Empty;
}
public BerSet()
{
}
public BerSet(Asn1Encodable element)
: base(element)
{
}
public BerSet(params Asn1Encodable[] elements)
: base(elements)
{
}
public BerSet(Asn1EncodableVector elementVector)
: base(elementVector)
{
}
public BerSet(IReadOnlyCollection<Asn1Encodable> elements)
: base(elements)
{
}
internal BerSet(bool isSorted, Asn1Encodable[] elements)
: base(isSorted, elements)
{
}
internal override IAsn1Encoding GetEncoding(int encoding)
{
if (1 != encoding)
return base.GetEncoding(encoding);
return new ConstructedILEncoding(0, 17, Asn1OutputStream.GetContentsEncodings(encoding, m_elements));
}
internal override IAsn1Encoding GetEncodingImplicit(int encoding, int tagClass, int tagNo)
{
if (1 != encoding)
return base.GetEncodingImplicit(encoding, tagClass, tagNo);
return new ConstructedILEncoding(tagClass, tagNo, Asn1OutputStream.GetContentsEncodings(encoding, m_elements));
}
}
}