-//
-// 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