org.apache.tomcat.util.collections
Class MultiMap
java.lang.Object
|
+--org.apache.tomcat.util.collections.MultiMap
- Direct Known Subclasses:
- Parameters
- 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 |
fields
protected org.apache.tomcat.util.collections.MultiMap.Field[] fields
count
protected int count
MultiMap
public MultiMap(int initial_size)
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 © 2001 Apache Software Foundation. All Rights Reserved.