diff options
Diffstat (limited to 'runtime/CSharp3/Sources/Antlr3.Runtime.JavaExtensions/SubList.cs')
-rw-r--r-- | runtime/CSharp3/Sources/Antlr3.Runtime.JavaExtensions/SubList.cs | 423 |
1 files changed, 0 insertions, 423 deletions
diff --git a/runtime/CSharp3/Sources/Antlr3.Runtime.JavaExtensions/SubList.cs b/runtime/CSharp3/Sources/Antlr3.Runtime.JavaExtensions/SubList.cs deleted file mode 100644 index 97025bf..0000000 --- a/runtime/CSharp3/Sources/Antlr3.Runtime.JavaExtensions/SubList.cs +++ /dev/null @@ -1,423 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Collections; - -namespace Antlr.Runtime.JavaExtensions -{ - public class SubList - : IList - { - IList _source; - int _startIndex; - int _endIndex; - - public SubList( IList source, int startIndex, int endIndex ) - { - if ( source == null ) - throw new ArgumentNullException( "source" ); - if ( startIndex < 0 || endIndex < 0 ) - throw new ArgumentOutOfRangeException(); - if ( startIndex > endIndex || endIndex >= source.Count ) - throw new ArgumentException(); - - _source = source; - _startIndex = startIndex; - _endIndex = endIndex; - } - - #region IList Members - - public int Add( object value ) - { - throw new NotSupportedException(); - } - - public void Clear() - { - throw new NotSupportedException(); - } - - public bool Contains( object value ) - { - return _source - .Cast<object>() - .Skip( _startIndex ) - .Take( _endIndex - _startIndex + 1 ) - .Contains( value ); - } - - public int IndexOf( object value ) - { - for ( int i = 0; i < Count; i++ ) - { - if ( object.Equals( this[i], value ) ) - return i; - } - - return -1; - } - - public void Insert( int index, object value ) - { - throw new NotSupportedException(); - } - - public bool IsFixedSize - { - get - { - return true; - } - } - - public bool IsReadOnly - { - get - { - return true; - } - } - - public void Remove( object value ) - { - throw new NotSupportedException(); - } - - public void RemoveAt( int index ) - { - throw new NotSupportedException(); - } - - public object this[int index] - { - get - { - if ( index < 0 || index >= Count ) - throw new ArgumentOutOfRangeException(); - - return _source[index + _startIndex]; - } - set - { - if ( index < 0 || index >= Count ) - throw new ArgumentOutOfRangeException(); - - _source[index + _startIndex] = value; - } - } - - #endregion - - #region ICollection Members - - public void CopyTo( Array array, int index ) - { - if ( array == null ) - throw new ArgumentNullException( "array" ); - - if ( index < 0 ) - throw new ArgumentOutOfRangeException(); - - if ( index + Count > array.Length ) - throw new ArgumentException(); - - for ( int i = 0; i < Count; i++ ) - { - array.SetValue( this[i], index + i ); - } - } - - public int Count - { - get - { - return _endIndex - _startIndex + 1; - } - } - - public bool IsSynchronized - { - get - { - return false; - } - } - - public object SyncRoot - { - get - { - return _source.SyncRoot; - } - } - - #endregion - - #region IEnumerable Members - - public System.Collections.IEnumerator GetEnumerator() - { - return _source.Cast<object>() - .Skip( _startIndex ) - .Take( _endIndex - _startIndex + 1 ) - .GetEnumerator(); - } - - #endregion - } - - public class SubList<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable - { - IList<T> _source; - int _startIndex; - int _endIndex; - - public SubList( IList<T> source, int startIndex, int endIndex ) - { - if ( source == null ) - throw new ArgumentNullException( "source" ); - if ( startIndex < 0 || endIndex < 0 ) - throw new ArgumentOutOfRangeException(); - if ( startIndex > endIndex || endIndex >= source.Count ) - throw new ArgumentException(); - - _source = source; - _startIndex = startIndex; - _endIndex = endIndex; - } - - #region IEnumerable Members - - IEnumerator IEnumerable.GetEnumerator() - { - return GetEnumerator(); - } - - #endregion - - #region ICollection Members - - void ICollection.CopyTo( Array array, int index ) - { - if ( array == null ) - throw new ArgumentNullException( "array" ); - - if ( index < 0 ) - throw new ArgumentOutOfRangeException(); - - if ( index + Count > array.Length ) - throw new ArgumentException(); - - for ( int i = 0; i < Count; i++ ) - { - array.SetValue( this[i], index + i ); - } - } - - public int Count - { - get - { - return _endIndex - _startIndex + 1; - } - } - - public bool IsSynchronized - { - get - { - ICollection sourceCollection = _source as ICollection; - if ( sourceCollection != null ) - return sourceCollection.IsSynchronized; - - return false; - } - } - - public object SyncRoot - { - get - { - ICollection sourceCollection = _source as ICollection; - if ( sourceCollection != null ) - return sourceCollection.SyncRoot; - - return _source; - } - } - - #endregion - - #region IList Members - - int IList.Add( object value ) - { - throw new NotSupportedException(); - } - - void IList.Clear() - { - throw new NotSupportedException(); - } - - public bool Contains( object value ) - { - return _source.Cast<object>().Skip( _startIndex ).Take( Count ).Contains( value ); - } - - public int IndexOf( object value ) - { - for ( int i = _startIndex; i <= _endIndex; i++ ) - { - if ( object.Equals( _source[i], value ) ) - return i - _startIndex; - } - - return -1; - } - - void IList.Insert( int index, object value ) - { - throw new NotSupportedException(); - } - - public bool IsFixedSize - { - get - { - var sourceCollection = _source as IList; - if ( sourceCollection != null ) - return sourceCollection.IsFixedSize; - - return false; - } - } - - public bool IsReadOnly - { - get - { - return true; - } - } - - void IList.Remove( object value ) - { - throw new NotSupportedException(); - } - - void IList.RemoveAt( int index ) - { - throw new NotSupportedException(); - } - - object IList.this[int index] - { - get - { - return this[index]; - } - set - { - this[index] = (T)value; - } - } - - #endregion - - #region IEnumerable<T> Members - - public IEnumerator<T> GetEnumerator() - { - return _source.Skip( _startIndex ).Take( Count ).GetEnumerator(); - } - - #endregion - - #region ICollection<T> Members - - void ICollection<T>.Add( T item ) - { - throw new NotSupportedException(); - } - - void ICollection<T>.Clear() - { - throw new NotSupportedException(); - } - - public bool Contains( T item ) - { - return _source.Skip( _startIndex ).Take( Count ).Contains( item ); - } - - public void CopyTo( T[] array, int arrayIndex ) - { - if ( array == null ) - throw new ArgumentNullException( "array" ); - - if ( arrayIndex < 0 ) - throw new ArgumentOutOfRangeException(); - - if ( arrayIndex + Count > array.Length ) - throw new ArgumentException(); - - for ( int i = 0; i < Count; i++ ) - { - array[arrayIndex + i] = this[i]; - } - } - - bool ICollection<T>.Remove( T item ) - { - throw new NotSupportedException(); - } - - #endregion - - #region IList<T> Members - - public int IndexOf( T item ) - { - for ( int i = 0; i < Count; i++ ) - { - if ( object.Equals( this[i], item ) ) - return i; - } - - return -1; - } - - void IList<T>.Insert( int index, T item ) - { - throw new NotSupportedException(); - } - - void IList<T>.RemoveAt( int index ) - { - throw new NotSupportedException(); - } - - public T this[int index] - { - get - { - if ( index < 0 || index >= Count ) - throw new ArgumentOutOfRangeException(); - - return _source[index + _startIndex]; - } - set - { - if ( index < 0 || index >= Count ) - throw new ArgumentOutOfRangeException(); - - _source[index + _startIndex] = value; - } - } - - #endregion - } -} |