| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- //
- // System.Xml.NameTable.cs
- //
- // Author: Duncan Mak ([email protected])
- //
- // (C) Ximian, Inc.
- //
- using System;
- using System.Collections;
- namespace System.Xml
- {
- public class NameTable : XmlNameTable
- {
- // Fields
- Hashtable table;
-
- // Constructor
- public NameTable ()
- : base ()
- {
- table = new Hashtable ();
- }
-
- // Method
- public override string Add (string key)
- {
- if (table.Contains (key))
- return (string) table [key];
- else {
- table.Add (key, key);
- return key;
- }
- }
- public override string Add (char[] key, int start, int len)
- {
- if (((0 > start) && (start >= key.Length))
- || ((0 > len) && (len >= key.Length - len)))
- throw new IndexOutOfRangeException ("The Index is out of range.");
-
- if (len == 0)
- return String.Empty;
- string item = new string (key, start, len);
- return Add (item);
- }
- public override string Get (string key)
- {
- if (! (table.Contains (key)))
- return null;
- else
- return (string) table [key];
- }
-
- public override string Get (char[] array, int offset, int length)
- {
- if (((0 > offset) && (offset >= array.Length))
- || ((0 > length) && (length >= array.Length - offset)))
- throw new IndexOutOfRangeException ("The Index is out of range.");
- if (length == 0)
- return String.Empty;
- string key = new string (array, offset, length);
- //return (string) table [key];
- return Get (key);
- }
- }
- }
|