Class BasicHeaderElement
- All Implemented Interfaces:
Cloneable,HeaderElement
public class BasicHeaderElement extends Object implements HeaderElement, Cloneable
Some HTTP headers (such as the set-cookie header) have values that can be decomposed into multiple elements. Such headers must be in the following form:
header = [ element ] *( "," [ element ] )
element = name [ "=" [ value ] ] *( ";" [ param ] )
param = name [ "=" [ value ] ]
name = token
value = ( token | quoted-string )
token = 1*<any char except "=", ",", ";", <"> and
white space>
quoted-string = <"> *( text | quoted-char ) <">
text = any char except <">
quoted-char = "\" char
Any amount of white space is allowed between any part of the
header, element or param and is ignored. A missing value in any
element or param will be stored as the empty String;
if the "=" is also missing null will be stored instead.
This class represents an individual header element, containing both a name/value pair (value may be null) and optionally a set of additional parameters.
- Since:
- 4.0
- Version:
- $Revision: 604625 $ $Date: 2007-12-16 06:11:11 -0800 (Sun, 16 Dec 2007) $
- Author:
- B.C. Holmes, Park, Sung-Gu, Mike Bowler, Oleg Kalnichevski
-
Constructor Summary
Constructors Constructor Description BasicHeaderElement(String name, String value)Constructor with name and value.BasicHeaderElement(String name, String value, NameValuePair[] parameters)Constructor with name, value and parameters. -
Method Summary
Modifier and Type Method Description Objectclone()Creates and returns a copy of thisObject.booleanequals(Object object)Compares this instance with the specified object and indicates if they are equal.StringgetName()Returns the name.NameValuePairgetParameter(int index)Obtains the parameter with the given index.NameValuePairgetParameterByName(String name)Returns parameter with the given name, if found.intgetParameterCount()Obtains the number of parameters.NameValuePair[]getParameters()Get parameters, if any.StringgetValue()Returns the value.inthashCode()Returns an integer hash code for this object.StringtoString()Returns a string containing a concise, human-readable description of this object.
-
Constructor Details
-
BasicHeaderElement
Constructor with name, value and parameters.- Parameters:
name- header element namevalue- header element value. May be nullparameters- header element parameters. May be null. Parameters are copied by reference, not by value
-
BasicHeaderElement
Constructor with name and value.- Parameters:
name- header element namevalue- header element value. May be null
-
-
Method Details
-
getName
Returns the name.- Specified by:
getNamein interfaceHeaderElement- Returns:
- String name The name
-
getValue
Returns the value.- Specified by:
getValuein interfaceHeaderElement- Returns:
- String value The current value.
-
getParameters
Get parameters, if any. The returned array is created for each invocation and can be modified by the caller without affecting this header element.- Specified by:
getParametersin interfaceHeaderElement- Returns:
- parameters as an array of
NameValuePairs
-
getParameterCount
public int getParameterCount()Obtains the number of parameters.- Specified by:
getParameterCountin interfaceHeaderElement- Returns:
- the number of parameters
-
getParameter
Obtains the parameter with the given index.- Specified by:
getParameterin interfaceHeaderElement- Parameters:
index- the index of the parameter, 0-based- Returns:
- the parameter with the given index
-
getParameterByName
Returns parameter with the given name, if found. Otherwise null is returned- Specified by:
getParameterByNamein interfaceHeaderElement- Parameters:
name- The name to search by.- Returns:
- NameValuePair parameter with the given name
-
equals
Description copied from class:ObjectCompares this instance with the specified object and indicates if they are equal. In order to be equal,omust represent the same object as this instance using a class-specific comparison. The general contract is that this comparison should be reflexive, symmetric, and transitive. Also, no object reference other than null is equal to null.The default implementation returns
trueonly ifthis == o. See Writing a correctequalsmethod if you intend implementing your ownequalsmethod.The general contract for the
equalsandObject.hashCode()methods is that ifequalsreturnstruefor any two objects, thenhashCode()must return the same value for these objects. This means that subclasses ofObjectusually override either both methods or neither of them.- Overrides:
equalsin classObject- Parameters:
object- the object to compare this instance with.- Returns:
trueif the specified object is equal to thisObject;falseotherwise.- See Also:
Object.hashCode()
-
hashCode
public int hashCode()Description copied from class:ObjectReturns an integer hash code for this object. By contract, any two objects for whichObject.equals(java.lang.Object)returnstruemust return the same hash code value. This means that subclasses ofObjectusually override both methods or neither method.Note that hash values must not change over time unless information used in equals comparisons also changes.
See Writing a correct
hashCodemethod if you intend implementing your ownhashCodemethod.- Overrides:
hashCodein classObject- Returns:
- this object's hash code.
- See Also:
Object.equals(java.lang.Object)
-
toString
Description copied from class:ObjectReturns a string containing a concise, human-readable description of this object. Subclasses are encouraged to override this method and provide an implementation that takes into account the object's type and data. The default implementation is equivalent to the following expression:getClass().getName() + '@' + Integer.toHexString(hashCode())
See Writing a useful
toStringmethod if you intend implementing your owntoStringmethod. -
clone
Description copied from class:ObjectCreates and returns a copy of thisObject. The default implementation returns a so-called "shallow" copy: It creates a new instance of the same class and then copies the field values (including object references) from this instance to the new instance. A "deep" copy, in contrast, would also recursively clone nested objects. A subclass that needs to implement this kind of cloning should callsuper.clone()to create the new instance and then create deep copies of the nested, mutable objects.- Overrides:
clonein classObject- Returns:
- a copy of this object.
- Throws:
CloneNotSupportedException- if this object's class does not implement theCloneableinterface.
-