2002-01-24 Nick Drochak <ndrochak@gol.com>
[mono.git] / mcs / class / corlib / System.Resources / ResourceSet.cs
index 271259e350c134864c653ffd1a64082b943de2cc..03ed57f4894e67de90ba57a03e93912f9a26b2f4 100644 (file)
 using System.Collections;
 using System.IO;
 
-namespace System.Resources {
-          
-          [Serializable]
-          public class ResourceSet : IDisposable {
+namespace System.Resources
+{
+       [Serializable]
+       public class ResourceSet : IDisposable
+       {
+               
+               protected IResourceReader Reader;
+               protected Hashtable Table;
+               
+               // Constructors
+               protected ResourceSet () {}
+               protected ResourceSet (IResourceReader reader)
+               {
+                       if (reader == null)
+                               throw new ArgumentNullException ("The reader is null.");
+                       Reader = reader;
+               }
 
-                        protected IResourceReader Reader;
-                        protected ResourceHashtable Table;
-                        
-                        // Constructors
-                        protected ResourceSet () {}
-                        protected ResourceSet (IResourceReader reader) {
-                                   if (reader == null)
-                                                 throw new ArgumentNullException ("The reader is null.");
-                                   Reader = reader;
-                        }
-
-                        protected ResourceSet (Stream stream) {
-                                   Reader = new ResourceReader (stream);
-                        }
-                        
-                        protected ResourceSet (String fileName) {
-                                   Reader = new ResourceReader (fileName);
-                        }
+               protected ResourceSet (Stream stream)
+               {
+                       Reader = new ResourceReader (stream);
+                }
+                
+                protected ResourceSet (String fileName)
+                {
+                        Reader = new ResourceReader (fileName);
+                }
 
-                        public virtual void Close () {
-                                   Dispose (true);
-                        }
+                public virtual void Close ()
+                {
+                           Dispose (true);
+                }
 
-                        public void Dispose() {
-                                   Dispose (true);
-                        }
+                public void Dispose()
+                {
+                        Dispose (true);
+                }
                         
-                        public void Dispose (bool disposing) {
-                                   if (disposing) {
-                                                 Reader = null;
-                                                 Table = null;
-                                   } 
-                        }
+               public void Dispose (bool disposing)
+               {
+                       if (disposing) {
+                               Reader = null;
+                               Table = null;
+                       } 
+               }
                         
-                        public virtual Type GetDefaultReader () {
-                                   return (typeof (ResourceReader));
-                        } 
-                        public virtual Type GetDefaultWriter () {
-                                   return (typeof (ResourceWriter));
-                        }
-
-                        public virtual object GetObject (string name) {
-                                   if (name == null)
-                                                 throw new ArgumentNullException ("The name parameter is null.");
-                                   if (Reader == null)
-                                                 throw new InvalidOperationException ("The ResourceSet has been closed.");
-                                   if (Table == null) {
-                                                 ReadResources ();
-                                                 return Table[name];
-                                   }
-                                   if (Table != null)
-                                                 return Table[name];
-                                   return null;
-                        }
-
-                        public virtual object GetObject (string name, bool ignoreCase) {
-                                   if (name == null)
-                                                 throw new ArgumentNullException ("The name parameter is null.");
-                                   if (Reader == null)
-                                                 throw new InvalidOperationException ("ResourceSet has been closed.");
-                                   if (Table == null)
-                                                 ReadResources ();
-                                   
-                                   if (Table != null && ignoreCase == false)
-                                                 return Table[name];
+                public virtual Type GetDefaultReader ()
+                {
+                        return (typeof (ResourceReader));
+                } 
+                public virtual Type GetDefaultWriter ()
+                {
+                        return (typeof (ResourceWriter));
+                }
 
-                                   if (ignoreCase) {
-                                                 IComparer c = new CaseInsensitiveComparer ();
-                                                 Table.comparer (c);
-                                                 return Table[name];
-                                   }
-                                   
-                                   else {  // Comparer is the default, case sensitive
-                                                 IComparer c = new Comparer ();
-                                                 Table.comparer (c);
-                                                 return Table[name];
-                                   }
-                        }
+                public virtual object GetObject (string name)
+                {
+                        if (name == null)
+                                throw new ArgumentNullException ("The name parameter is null.");
+                        if (Reader == null)
+                                throw new InvalidOperationException ("The ResourceSet has been closed.");
+                        if (Table == null) {
+                                ReadResources ();
+                                return Table[name];
+                        } else 
+                                return Table[name];
+                }
+               public virtual object GetObject (string name, bool ignoreCase)
+               {
+                       if (name == null)
+                               throw new ArgumentNullException ("The name parameter is null.");
+                       if (Reader == null)
+                               throw new InvalidOperationException ("ResourceSet has been closed.");
+                       if (Table == null)
+                               ReadResources ();
+                       if (ignoreCase) {
+                               foreach (DictionaryEntry de in Table) {
+                                       string key = (string) de.Key;
+                                       if (String.Compare (key, name, true) == 0)
+                                               return de.Value;
+                               }
+                               return null;
+                       } else
+                               return Table[name];
+               }
 
-                        public virtual string GetString (string name) {
-                                   Object o = GetObject (name);
-                                   if (o is string)
-                                                 return (string) o;
-                                   return null;
-                        }
+               public virtual string GetString (string name)
+               {
+                               Object o = GetObject (name);
+                               if (o is string)
+                                       return (string) o;
+                               return null;
+               }
 
-                        public virtual string GetString (string name, bool ignoreCase) {
-                                   Object o = GetObject (name, ignoreCase);
-                                   if (o is string)
-                                                 return (string) o;
-                                   return null;
-                        }
-
-                        public virtual void ReadResources () {
-                                   IDictionaryEnumerator i = Reader.GetEnumerator();
-
-                                   if (Table == null)
-                                                 Table = new ResourceHashtable ();
-                                   i.Reset ();
-
-                                   while (i.MoveNext ()) 
-                                                 Table.Add (i.Key, i.Value);
-                        }
-          }
-          public class ResourceHashtable : Hashtable {}
+               public virtual string GetString (string name, bool ignoreCase)
+                {
+                        Object o = GetObject (name, ignoreCase);
+                        if (o is string)
+                                return (string) o;
+                        return null;
+                }
+               
+               public virtual void ReadResources ()
+               {
+                       IDictionaryEnumerator i = Reader.GetEnumerator();
+                       
+                       if (Table == null)
+                               Table = new Hashtable ();
+                       i.Reset ();
+                       
+                       while (i.MoveNext ()) 
+                               Table.Add (i.Key, i.Value);
+               }
+       }
 }
-