/src/NUnit/util/AssemblyList.cs
C# | 79 lines | 59 code | 10 blank | 10 comment | 7 complexity | 3e6b7728b5a3b971645fd9cfef827d51 MD5 | raw file
Possible License(s): GPL-2.0
- // ****************************************************************
- // This is free software licensed under the NUnit license. You
- // may obtain a copy of the license as well as information regarding
- // copyright ownership at http://nunit.org.
- // ****************************************************************
-
- using System;
- using System.IO;
- using System.Collections;
-
- namespace NUnit.Util
- {
- /// <summary>
- /// Represents a list of assemblies. It stores paths
- /// that are added and fires an event whenevever it
- /// changes. All paths must be added as absolute paths.
- /// </summary>
- public class AssemblyList : CollectionBase
- {
- #region Properties and Events
- public string this[int index]
- {
- get { return (string)List[index]; }
- set
- {
- if ( !Path.IsPathRooted( value ) )
- throw new ArgumentException( "Assembly path must be absolute" );
- List[index] = value;
- }
- }
-
- public event EventHandler Changed;
- #endregion
-
- #region Methods
- public string[] ToArray()
- {
- return (string[])InnerList.ToArray( typeof( string ) );
- }
-
- public void Add( string assemblyPath )
- {
- if ( !Path.IsPathRooted( assemblyPath ) )
- throw new ArgumentException( "Assembly path must be absolute" );
- List.Add( assemblyPath );
- }
-
- public void Remove( string assemblyPath )
- {
- for( int index = 0; index < this.Count; index++ )
- {
- if ( this[index] == assemblyPath )
- RemoveAt( index );
- }
- }
-
- protected override void OnRemoveComplete(int index, object value)
- {
- FireChangedEvent();
- }
-
- protected override void OnInsertComplete(int index, object value)
- {
- FireChangedEvent();
- }
-
- protected override void OnSetComplete(int index, object oldValue, object newValue)
- {
- FireChangedEvent();
- }
-
- private void FireChangedEvent()
- {
- if ( Changed != null )
- Changed( this, EventArgs.Empty );
- }
- #endregion
- }
- }