/src/NUnit/util/MemorySettingsStorage.cs
C# | 79 lines | 50 code | 16 blank | 13 comment | 2 complexity | c7327d3fc17f9d45b55bbd0a42b47d8f MD5 | raw file
Possible License(s): GPL-2.0
- // ****************************************************************
- // Copyright 2007, Charlie Poole
- // This is free software licensed under the NUnit license. You may
- // obtain a copy of the license at http://nunit.org
- // ****************************************************************
-
- using System;
- using System.Collections;
-
- namespace NUnit.Util
- {
- /// <summary>
- /// MemorySettingsStorage is used to hold settings for
- /// the NUnit tests and also serves as the base class
- /// for XmlSettingsStorage.
- /// </summary>
- public class MemorySettingsStorage : ISettingsStorage
- {
- protected Hashtable settings = new Hashtable();
-
- #region ISettingsStorage Members
-
- public object GetSetting(string settingName)
- {
- return settings[settingName];
- }
-
- public void RemoveSetting(string settingName)
- {
- settings.Remove( settingName );
- }
-
- public void RemoveGroup( string groupName )
- {
- ArrayList keysToRemove = new ArrayList();
-
- string prefix = groupName;
- if ( !prefix.EndsWith(".") )
- prefix = prefix + ".";
-
- foreach( string key in settings.Keys )
- if ( key.StartsWith( prefix ) )
- keysToRemove.Add( key );
-
- foreach( string key in keysToRemove )
- settings.Remove( key );
- }
-
- public void SaveSetting(string settingName, object settingValue)
- {
- settings[settingName] = settingValue;
- }
-
- public ISettingsStorage MakeChildStorage(string name)
- {
- return new MemorySettingsStorage();
- }
-
- public virtual void LoadSettings()
- {
- // No action required
- }
-
- public virtual void SaveSettings()
- {
- // No action required
- }
- #endregion
-
- #region IDisposable Members
-
- public void Dispose()
- {
- // TODO: Add MemorySettingsStorage.Dispose implementation
- }
-
- #endregion
- }
- }