summary refs log tree commit diff
path: root/crypto/src/util/collections/CollectionUtilities.cs
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/src/util/collections/CollectionUtilities.cs')
-rw-r--r--crypto/src/util/collections/CollectionUtilities.cs71
1 files changed, 71 insertions, 0 deletions
diff --git a/crypto/src/util/collections/CollectionUtilities.cs b/crypto/src/util/collections/CollectionUtilities.cs
new file mode 100644
index 000000000..fd0bdcc7a
--- /dev/null
+++ b/crypto/src/util/collections/CollectionUtilities.cs
@@ -0,0 +1,71 @@
+using System;
+using System.Collections;
+using System.Text;
+
+namespace Org.BouncyCastle.Utilities.Collections
+{
+	public sealed class CollectionUtilities
+	{
+		private CollectionUtilities()
+		{
+		}
+
+        public static void AddRange(IList to, ICollection range)
+        {
+            foreach (object o in range)
+            {
+                to.Add(o);
+            }
+        }
+
+        public static bool CheckElementsAreOfType(
+			IEnumerable e,
+			Type		t)
+		{
+			foreach (object o in e)
+			{
+				if (!t.IsInstanceOfType(o))
+					return false;
+			}
+			return true;
+		}
+
+        public static IDictionary ReadOnly(IDictionary d)
+        {
+            return new UnmodifiableDictionaryProxy(d);
+        }
+
+        public static IList ReadOnly(IList l)
+        {
+            return new UnmodifiableListProxy(l);
+        }
+
+        public static ISet ReadOnly(ISet s)
+        {
+            return new UnmodifiableSetProxy(s);
+        }
+
+        public static string ToString(
+			IEnumerable c)
+		{
+			StringBuilder sb = new StringBuilder("[");
+
+			IEnumerator e = c.GetEnumerator();
+
+			if (e.MoveNext())
+			{
+				sb.Append(e.Current.ToString());
+
+				while (e.MoveNext())
+				{
+					sb.Append(", ");
+					sb.Append(e.Current.ToString());
+				}
+			}
+
+			sb.Append(']');
+
+			return sb.ToString();
+		}
+	}
+}