1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------
namespace System.ServiceModel.Description
{
using System.ServiceModel;
using System.ComponentModel;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Runtime.Serialization;
using System.Xml;
public class PolicyAssertionCollection : Collection<XmlElement>
{
public PolicyAssertionCollection()
{
}
public PolicyAssertionCollection(IEnumerable<XmlElement> elements)
{
if (elements == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("elements");
AddRange(elements);
}
internal void AddRange(IEnumerable<XmlElement> elements)
{
foreach (XmlElement element in elements)
{
base.Add(element);
}
}
public bool Contains(string localName, string namespaceUri)
{
if (localName == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("localName");
if (namespaceUri == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("namespaceUri");
for (int i = 0; i < this.Count; i++)
{
XmlElement item = this[i];
if (item.LocalName == localName && item.NamespaceURI == namespaceUri)
return true;
}
return false;
}
public XmlElement Find(string localName, string namespaceUri)
{
return Find(localName, namespaceUri, false);
}
public XmlElement Remove(string localName, string namespaceUri)
{
return Find(localName, namespaceUri, true);
}
XmlElement Find(string localName, string namespaceUri, bool remove)
{
if (localName == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("localName");
if (namespaceUri == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("namespaceUri");
for (int index = 0; index < this.Count; index++)
{
XmlElement item = this[index];
if (item.LocalName == localName && item.NamespaceURI == namespaceUri)
{
if (remove)
{
RemoveAt(index);
}
return item;
}
}
return null;
}
public Collection<XmlElement> FindAll(string localName, string namespaceUri)
{
return FindAll(localName, namespaceUri, false);
}
public Collection<XmlElement> RemoveAll(string localName, string namespaceUri)
{
return FindAll(localName, namespaceUri, true);
}
Collection<XmlElement> FindAll(string localName, string namespaceUri, bool remove)
{
if (localName == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("localName");
if (namespaceUri == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("namespaceUri");
Collection<XmlElement> collection = new Collection<XmlElement>();
for (int index = 0; index < this.Count; index++)
{
XmlElement item = this[index];
if (item.LocalName == localName && item.NamespaceURI == namespaceUri)
{
if (remove)
{
RemoveAt(index);
// back up the index so we inspect the new item at this location
index--;
}
collection.Add(item);
}
}
return collection;
}
protected override void InsertItem(int index, XmlElement item)
{
if (item == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("item");
base.InsertItem(index, item);
}
protected override void SetItem(int index, XmlElement item)
{
if (item == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("item");
base.SetItem(index, item);
}
}
}
|