org.apache.tomcat.util.collections
Class MultiMap
java.lang.Object
org.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.
- dac@eng.sun.com
- James Todd [gonzo@eng.sun.com]
- Costin Manolache
protected int | count
|
protected org.apache.tomcat.util.collections.MultiMap.Field[] | fields
|
int | addField() - Create a new, unitialized entry.
|
int | find(String name, int starting) - Find the index of a field with the given name.
|
int | findFirst(String name)
|
int | findIgnoreCase(String name, int starting) - Find the index of a field with the given name.
|
int | findNext(int startPos)
|
MessageBytes | get(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.
|
fields
protected org.apache.tomcat.util.collections.MultiMap.Field[] fields
MultiMap
public MultiMap(int initial_size)
addField
public int addField()
Create a new, unitialized entry.
find
public int find(String name,
int starting)
Find the index of a field with the given name.
findFirst
public int findFirst(String name)
findIgnoreCase
public int findIgnoreCase(String name,
int starting)
Find the index of a field with the given name.
findNext
public int findNext(int startPos)
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.
recycle
public void recycle()
Clears all header fields.
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 )
size
public int size()
Returns the current number of header fields.
Copyright B) 2000-2003 Apache Software Foundation. All Rights Reserved.