www.pudn.com > InternetÖ©Öë³ÌÐò.zip > AttributeList.cs
using System;
using System.Collections;
namespace Spider
{
///
/// The AttributeList class is used to store list of
/// Attribute classes.
///
/// This spider is copyright 2003 by Jeff Heaton. However, it is
/// released under a Limited GNU Public License (LGPL). You may
/// use it freely in your own programs. For the latest version visit
/// http://www.jeffheaton.com.
///
///
///
public class AttributeList:Attribute
{
///
/// An internally used Vector. This vector contains
/// the entire list of attributes.
///
protected ArrayList m_list;
///
/// Make an exact copy of this object using the cloneable interface.
///
/// A new object that is a clone of the specified object.
public override Object Clone()
{
AttributeList rtn = new AttributeList();
for ( int i=0;i
/// Create a new, empty, attribute list.
///
public AttributeList():base("","")
{
m_list = new ArrayList();
}
///
/// Add the specified attribute to the list of attributes.
///
/// An attribute to add to this AttributeList.
public void Add(Attribute a)
{
m_list.Add(a);
}
///
/// Clear all attributes from this AttributeList and return it
/// to a empty state.
///
public void Clear()
{
m_list.Clear();
}
///
/// Returns true of this AttributeList is empty, with no attributes.
///
/// True if this AttributeList is empty, false otherwise.
public bool IsEmpty()
{
return( m_list.Count<=0);
}
///
/// If there is already an attribute with the specified name,
/// then it will have its value changed to match the specified value.
/// If there is no Attribute with the specified name, then one will
/// be created. This method is case-insensitive.
///
/// The name of the Attribute to edit or create. Case-insensitive.
/// The value to be held in this attribute.
public void Set(string name,string value)
{
if ( name==null )
return;
if ( value==null )
value="";
Attribute a = this[name];
if ( a==null )
{
a = new Attribute(name,value);
Add(a);
}
else
a.Value = value;
}
///
/// How many attributes are in this AttributeList
///
public int Count
{
get
{
return m_list.Count;
}
}
///
/// A list of the attributes in this AttributeList
///
public ArrayList List
{
get
{
return m_list;
}
}
///
/// Access the individual attributes
///
public Attribute this[int index]
{
get
{
if ( index
/// Access the individual attributes by name.
///
public Attribute this[string index]
{
get
{
int i=0;
while ( this[i]!=null )
{
if ( this[i].Name.ToLower().Equals( (index.ToLower()) ))
return this[i];
i++;
}
return null;
}
}
}
}