merge r67228-r67235, r67237, r67251 and r67256-67259 to trunk (they are
[mono.git] / mcs / class / System.XML / System.Xml.Serialization / CodeIdentifiers.cs
index 9141761a5c3b171c96af466f2536bffe0d0879d3..1dfd2da1ae9da7aa4f080b3a2c0c4a829e6081e3 100644 (file)
-// 
-// System.Xml.Serialization.CodeIdentifiers 
-//
-// Author:
-//   Tim Coleman (tim@timcoleman.com)
-//
-// Copyright (C) Tim Coleman, 2002
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections;
-using System.Globalization;
-
-namespace System.Xml.Serialization {
-       public class CodeIdentifiers {
-
-               #region Fields
-
-               bool useCamelCasing;
-               Hashtable table;
-               Hashtable reserved;
-
-               #endregion
-
-               #region Constructors
-
-               public CodeIdentifiers ()
-                       : this (true)
-               {
-               }
-
-               public CodeIdentifiers (bool caseSensitive)
-               {
-#if NET_2_0
-                       StringComparer c = caseSensitive ?
-                               StringComparer.Ordinal :
-                               StringComparer.OrdinalIgnoreCase;
-                       table = new Hashtable (c);
-                       reserved = new Hashtable (c);
-#else
-                       table = new Hashtable ();
-                       reserved = new Hashtable ();
-#endif
-               }
-
-               #endregion // Constructors
-
-               #region Properties
-
-               public bool UseCamelCasing {
-                       get { return useCamelCasing; }
-                       set { useCamelCasing = value; }
-               }
-
-               #endregion // Properties
-
-               #region Methods
-
-               public void Add (string identifier, object value)
-               {
-                       table.Add (identifier, value);
-               }
-
-               public void AddReserved (string identifier)
-               {
-                       reserved.Add (identifier, identifier);
-               }
-
-               public string AddUnique (string identifier, object value)
-               {
-                       string unique = MakeUnique (identifier);
-                       Add (unique, value);
-                       return unique;
-               }
-
-               public void Clear ()
-               {
-                       table.Clear ();
-               }
-
-               public bool IsInUse (string identifier)
-               {
-                       return (table.ContainsKey (identifier) || reserved.ContainsKey (identifier));
-               }
-
-               public string MakeRightCase (string identifier)
-               {
-                       if (UseCamelCasing)
-                               return CodeIdentifier.MakeCamel (identifier);
-                       else
-                               return CodeIdentifier.MakePascal (identifier);
-               }
-
-               public string MakeUnique (string identifier)
-               {
-                       string uniqueIdentifier = identifier;
-                       int i = 1;
-
-                       while (IsInUse (uniqueIdentifier)) {
-                               uniqueIdentifier = String.Format (CultureInfo.InvariantCulture, "{0}{1}", identifier, i);
-                               i += 1;
-                       }
-
-                       return uniqueIdentifier;
-               }
-
-               public void Remove (string identifier)
-               {
-                       table.Remove (identifier);
-               }
-
-               public void RemoveReserved (string identifier)
-               {
-                       reserved.Remove (identifier);
-               }
-
-               public object ToArray (Type type)
-               {
-                       Array list = Array.CreateInstance (type, table.Count);
-                       table.CopyTo (list, 0);
-                       return list;
-               }
-
-               #endregion // Methods
-       }
-}
+// \r
+// System.Xml.Serialization.CodeIdentifiers \r
+//\r
+// Author:\r
+//   Tim Coleman (tim@timcoleman.com)\r
+//\r
+// Copyright (C) Tim Coleman, 2002\r
+//\r
+\r
+//\r
+// Permission is hereby granted, free of charge, to any person obtaining\r
+// a copy of this software and associated documentation files (the\r
+// "Software"), to deal in the Software without restriction, including\r
+// without limitation the rights to use, copy, modify, merge, publish,\r
+// distribute, sublicense, and/or sell copies of the Software, and to\r
+// permit persons to whom the Software is furnished to do so, subject to\r
+// the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be\r
+// included in all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
+//\r
+\r
+using System;\r
+using System.Collections;\r
+using System.Globalization;\r
+\r
+namespace System.Xml.Serialization {\r
+       public class CodeIdentifiers {\r
+\r
+               #region Fields\r
+\r
+               bool useCamelCasing;\r
+               Hashtable table;\r
+               Hashtable reserved;\r
+\r
+               #endregion\r
+\r
+               #region Constructors\r
+\r
+               public CodeIdentifiers ()\r
+                       : this (true)\r
+               {\r
+               }\r
+\r
+               public CodeIdentifiers (bool caseSensitive)\r
+               {\r
+#if NET_2_0\r
+                       StringComparer c = caseSensitive ?\r
+                               StringComparer.Ordinal :\r
+                               StringComparer.OrdinalIgnoreCase;\r
+                       table = new Hashtable (c);\r
+                       reserved = new Hashtable (c);\r
+#else\r
+                       table = new Hashtable ();\r
+                       reserved = new Hashtable ();\r
+#endif\r
+               }\r
+\r
+               #endregion // Constructors\r
+\r
+               #region Properties\r
+\r
+               public bool UseCamelCasing {\r
+                       get { return useCamelCasing; }\r
+                       set { useCamelCasing = value; }\r
+               }\r
+\r
+               #endregion // Properties\r
+\r
+               #region Methods\r
+\r
+               public void Add (string identifier, object value)\r
+               {\r
+                       table.Add (identifier, value);\r
+               }\r
+\r
+               public void AddReserved (string identifier)\r
+               {\r
+                       reserved.Add (identifier, identifier);\r
+               }\r
+\r
+               public string AddUnique (string identifier, object value)\r
+               {\r
+                       string unique = MakeUnique (identifier);\r
+                       Add (unique, value);\r
+                       return unique;\r
+               }\r
+\r
+               public void Clear ()\r
+               {\r
+                       table.Clear ();\r
+               }\r
+\r
+               public bool IsInUse (string identifier)\r
+               {\r
+                       return (table.ContainsKey (identifier) || reserved.ContainsKey (identifier));\r
+               }\r
+\r
+               public string MakeRightCase (string identifier)\r
+               {\r
+                       if (UseCamelCasing)\r
+                               return CodeIdentifier.MakeCamel (identifier);\r
+                       else\r
+                               return CodeIdentifier.MakePascal (identifier);\r
+               }\r
+\r
+               public string MakeUnique (string identifier)\r
+               {\r
+                       string uniqueIdentifier = identifier;\r
+                       int i = 1;\r
+\r
+                       while (IsInUse (uniqueIdentifier)) {\r
+                               uniqueIdentifier = String.Format (CultureInfo.InvariantCulture, "{0}{1}", identifier, i);\r
+                               i += 1;\r
+                       }\r
+\r
+                       return uniqueIdentifier;\r
+               }\r
+\r
+               public void Remove (string identifier)\r
+               {\r
+                       table.Remove (identifier);\r
+               }\r
+\r
+               public void RemoveReserved (string identifier)\r
+               {\r
+                       reserved.Remove (identifier);\r
+               }\r
+\r
+               public object ToArray (Type type)\r
+               {\r
+                       Array list = Array.CreateInstance (type, table.Count);\r
+                       table.CopyTo (list, 0);\r
+                       return list;\r
+               }\r
+\r
+               #endregion // Methods\r
+       }\r
+}\r