org.apache.tomcat.util.collections
Class MultiMap

java.lang.Object
  extended byorg.apache.tomcat.util.collections.MultiMap

public class MultiMap
extends java.lang.Object

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.

Author:
dac@eng.sun.com, James Todd [gonzo@eng.sun.com], Costin Manolache

Field Summary
protected  int count
           
protected  org.apache.tomcat.util.collections.MultiMap.Field[] fields
           
 
Constructor Summary
MultiMap(int initial_size)
           
 
Method Summary
 int addField()
          Create a new, unitialized entry.
 int find(java.lang.String name, int starting)
          Find the index of a field with the given name.
 int findFirst(java.lang.String name)
           
 int findIgnoreCase(java.lang.String name, int starting)
          Find the index of a field with the given name.
 int findNext(int startPos)
           
 MessageBytes get(java.lang.String name)
           
 MessageBytes getName(int n)
          Returns the Nth header name This may be used to iterate through all header fields.
 MessageBytes getValue(int n)
          Returns the Nth header value This may be used to iterate through all header fields.
 void recycle()
          Clears all header fields.
 void remove(int i)
          Removes the field at the specified position.
 int size()
          Returns the current number of header fields.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

fields

protected org.apache.tomcat.util.collections.MultiMap.Field[] fields

count

protected int count
Constructor Detail

MultiMap

public MultiMap(int initial_size)
Method Detail

recycle

public void recycle()
Clears all header fields.


size

public int size()
Returns the current number of header fields.


getName

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 )


getValue

public MessageBytes getValue(int n)
Returns the Nth header value This may be used to iterate through all header fields.


find

public int find(java.lang.String name,
                int starting)
Find the index of a field with the given name.


findIgnoreCase

public int findIgnoreCase(java.lang.String name,
                          int starting)
Find the index of a field with the given name.


remove

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 )


addField

public int addField()
Create a new, unitialized entry.


get

public MessageBytes get(java.lang.String name)

findFirst

public int findFirst(java.lang.String name)

findNext

public int findNext(int startPos)


Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.