AttributeList.cs
上传用户:yxdanqu
上传日期:2010-01-07
资源大小:84k
文件大小:3k
源码类别:

搜索引擎

开发平台:

C#

  1. using System;
  2. using System.Collections;
  3. namespace Spider
  4. {
  5. /// <summary>
  6. /// The AttributeList class is used to store list of
  7. /// Attribute classes.
  8. /// 
  9. /// This spider is copyright 2003 by Jeff Heaton. However, it is
  10. /// released under a Limited GNU Public License (LGPL). You may 
  11. /// use it freely in your own programs. For the latest version visit
  12. /// http://www.jeffheaton.com.
  13. ///
  14. /// </summary>
  15. ///  public class AttributeList:Attribute
  16. { /// <summary>
  17. /// An internally used Vector.  This vector contains
  18. /// the entire list of attributes.
  19. /// </summary> protected ArrayList m_list; /// <summary>
  20. /// Make an exact copy of this object using the cloneable interface.
  21. /// </summary>
  22. /// <returns>A new object that is a clone of the specified object.</returns> public override Object Clone() { AttributeList rtn = new AttributeList(); for ( int i=0;i<m_list.Count;i++ ) rtn.Add( (Attribute)this[i].Clone() ); return rtn; } /// <summary>
  23. /// Create a new, empty, attribute list.
  24. /// </summary> public AttributeList():base("","") { m_list = new ArrayList(); } /// <summary>
  25. /// Add the specified attribute to the list of attributes.
  26. /// </summary>
  27. /// <param name="a">An attribute to add to this AttributeList.</param> public void Add(Attribute a) { m_list.Add(a); } /// <summary>
  28. /// Clear all attributes from this AttributeList and return it
  29. /// to a empty state.
  30. /// </summary> public void Clear() { m_list.Clear(); } /// <summary>
  31. /// Returns true of this AttributeList is empty, with no attributes.
  32. /// </summary>
  33. /// <returns>True if this AttributeList is empty, false otherwise.</returns> public bool IsEmpty() { return( m_list.Count<=0); } /// <summary>
  34. /// If there is already an attribute with the specified name,
  35. /// then it will have its value changed to match the specified value.
  36. /// If there is no Attribute with the specified name, then one will
  37. /// be created.  This method is case-insensitive.
  38. /// </summary>
  39. /// <param name="name">The name of the Attribute to edit or create.  Case-insensitive.</param>
  40. /// <param name="value">The value to be held in this attribute.</param> public void Set(string name,string value) { if ( name==null ) return; if ( value==null ) value=""; Attribute a = this[name]; if ( a==null ) 
  41. { a = new Attribute(name,value); Add(a); } 
  42. else a.Value = value; } /// <summary>
  43. /// How many attributes are in this AttributeList
  44. /// </summary> public int Count { get  { return m_list.Count; } } /// <summary>
  45. /// A list of the attributes in this AttributeList
  46. /// </summary> public ArrayList List { get  { return m_list; } } /// <summary>
  47. /// Access the individual attributes
  48. /// </summary> public Attribute this[int index] { get  { if ( index<m_list.Count ) return(Attribute)m_list[index]; else return null; } } /// <summary>
  49. /// Access the individual attributes by name.
  50. /// </summary> public Attribute this[string index] { get  { int i=0; while ( this[i]!=null ) 
  51. { if ( this[i].Name.ToLower().Equals( (index.ToLower()) )) return this[i]; i++; } return null; } } }
  52. }