Home » apache-tomcat-6.0.26-src » org.apache » tomcat » util » collections » [javadoc | source]
org.apache.tomcat.util.collections
public class: MultiMap [javadoc | source]
java.lang.Object
   org.apache.tomcat.util.collections.MultiMap

Direct Known Subclasses:
    Parameters

An efficient representation for certain type of map. The keys can have a single or multi values, but most of the time there are single values. The data is of "MessageBytes" type, meaning bytes[] that can be converted to Strings ( if needed, and encoding is lazy-binded ). This is a base class for MimeHeaders, Parameters and Cookies. Data structures: each field is a single-valued key/value. The fields are allocated when needed, and are recycled. The current implementation does linear search, in future we'll also use the hashkey.
Nested Class Summary:
final class  MultiMap.Field   
Field Summary
protected  Field[] fields     
protected  int count     
static final  int NEED_NEXT     
static final  int LAST     
Constructor:
 public MultiMap(int initial_size) 
Method from org.apache.tomcat.util.collections.MultiMap Summary:
addField,   find,   findFirst,   findIgnoreCase,   findNext,   get,   getName,   getValue,   recycle,   remove,   size
Methods from java.lang.Object:
clone,   equals,   finalize,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from org.apache.tomcat.util.collections.MultiMap Detail:
 public int addField() 
    Create a new, unitialized entry.
 public int find(String name,
    int starting) 
    Find the index of a field with the given name.
 public int findFirst(String name) 
 public int findIgnoreCase(String name,
    int starting) 
    Find the index of a field with the given name.
 public int findNext(int startPos) 
 public MessageBytes get(String name) 
 public MessageBytes getName(int n) 
    Returns the Nth header name This may be used to iterate through all header fields. An exception is thrown if the index is not valid ( <0 or >size )
 public MessageBytes getValue(int n) 
    Returns the Nth header value This may be used to iterate through all header fields.
 public  void recycle() 
    Clears all header fields.
 public  void remove(int i) 
    Removes the field at the specified position. MultiMap will preserve the order of field add unless remove() is called. This is not thread-safe, and will invalidate all iterators. This is not a frequent operation for Headers and Parameters - there are better ways ( like adding a "isValid" field )
 public int size() 
    Returns the current number of header fields.