Package org.apache.commons.fileupload
Class ParameterParser
- java.lang.Object
-
- org.apache.commons.fileupload.ParameterParser
-
public class ParameterParser extends java.lang.Object
A simple parser intended to parse sequences of name/value pairs. Parameter values are expected to be enclosed in quotes if they contain unsafe characters, such as '=' characters or separators. Parameter values are optional and can be omitted.param1 = value; param2 = "anything goes; really"; param3
-
-
Field Summary
Fields Modifier and Type Field Description private char[]
chars
String to be parsed.private int
i1
Start of a token.private int
i2
End of a token.private int
len
Maximum position in the string.private boolean
lowerCaseNames
Whether names stored in the map should be converted to lower case.private int
pos
Current position in the string.
-
Constructor Summary
Constructors Constructor Description ParameterParser()
Default ParameterParser constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.lang.String
getToken(boolean quoted)
A helper method to process the parsed token.private boolean
hasChar()
Are there any characters left to parse?boolean
isLowerCaseNames()
Returnstrue
if parameter names are to be converted to lower case when name/value pairs are parsed.private boolean
isOneOf(char ch, char[] charray)
Tests if the given character is present in the array of characters.java.util.Map<java.lang.String,java.lang.String>
parse(char[] charArray, char separator)
Extracts a map of name/value pairs from the given array of characters.java.util.Map<java.lang.String,java.lang.String>
parse(char[] charArray, int offset, int length, char separator)
Extracts a map of name/value pairs from the given array of characters.java.util.Map<java.lang.String,java.lang.String>
parse(java.lang.String str, char separator)
Extracts a map of name/value pairs from the given string.java.util.Map<java.lang.String,java.lang.String>
parse(java.lang.String str, char[] separators)
Extracts a map of name/value pairs from the given string.private java.lang.String
parseQuotedToken(char[] terminators)
Parses out a token until any of the given terminators is encountered outside the quotation marks.private java.lang.String
parseToken(char[] terminators)
Parses out a token until any of the given terminators is encountered.void
setLowerCaseNames(boolean b)
Sets the flag if parameter names are to be converted to lower case when name/value pairs are parsed.
-
-
-
Field Detail
-
chars
private char[] chars
String to be parsed.
-
pos
private int pos
Current position in the string.
-
len
private int len
Maximum position in the string.
-
i1
private int i1
Start of a token.
-
i2
private int i2
End of a token.
-
lowerCaseNames
private boolean lowerCaseNames
Whether names stored in the map should be converted to lower case.
-
-
Method Detail
-
hasChar
private boolean hasChar()
Are there any characters left to parse?- Returns:
true
if there are unparsed characters,false
otherwise.
-
getToken
private java.lang.String getToken(boolean quoted)
A helper method to process the parsed token. This method removes leading and trailing blanks as well as enclosing quotation marks, when necessary.- Parameters:
quoted
-true
if quotation marks are expected,false
otherwise.- Returns:
- the token
-
isOneOf
private boolean isOneOf(char ch, char[] charray)
Tests if the given character is present in the array of characters.- Parameters:
ch
- the character to test for presense in the array of characterscharray
- the array of characters to test against- Returns:
true
if the character is present in the array of characters,false
otherwise.
-
parseToken
private java.lang.String parseToken(char[] terminators)
Parses out a token until any of the given terminators is encountered.- Parameters:
terminators
- the array of terminating characters. Any of these characters when encountered signify the end of the token- Returns:
- the token
-
parseQuotedToken
private java.lang.String parseQuotedToken(char[] terminators)
Parses out a token until any of the given terminators is encountered outside the quotation marks.- Parameters:
terminators
- the array of terminating characters. Any of these characters when encountered outside the quotation marks signify the end of the token- Returns:
- the token
-
isLowerCaseNames
public boolean isLowerCaseNames()
Returnstrue
if parameter names are to be converted to lower case when name/value pairs are parsed.- Returns:
true
if parameter names are to be converted to lower case when name/value pairs are parsed. Otherwise returnsfalse
-
setLowerCaseNames
public void setLowerCaseNames(boolean b)
Sets the flag if parameter names are to be converted to lower case when name/value pairs are parsed.- Parameters:
b
-true
if parameter names are to be converted to lower case when name/value pairs are parsed.false
otherwise.
-
parse
public java.util.Map<java.lang.String,java.lang.String> parse(java.lang.String str, char[] separators)
Extracts a map of name/value pairs from the given string. Names are expected to be unique. Multiple separators may be specified and the earliest found in the input string is used.- Parameters:
str
- the string that contains a sequence of name/value pairsseparators
- the name/value pairs separators- Returns:
- a map of name/value pairs
-
parse
public java.util.Map<java.lang.String,java.lang.String> parse(java.lang.String str, char separator)
Extracts a map of name/value pairs from the given string. Names are expected to be unique.- Parameters:
str
- the string that contains a sequence of name/value pairsseparator
- the name/value pairs separator- Returns:
- a map of name/value pairs
-
parse
public java.util.Map<java.lang.String,java.lang.String> parse(char[] charArray, char separator)
Extracts a map of name/value pairs from the given array of characters. Names are expected to be unique.- Parameters:
charArray
- the array of characters that contains a sequence of name/value pairsseparator
- the name/value pairs separator- Returns:
- a map of name/value pairs
-
parse
public java.util.Map<java.lang.String,java.lang.String> parse(char[] charArray, int offset, int length, char separator)
Extracts a map of name/value pairs from the given array of characters. Names are expected to be unique.- Parameters:
charArray
- the array of characters that contains a sequence of name/value pairsoffset
- - the initial offset.length
- - the length.separator
- the name/value pairs separator- Returns:
- a map of name/value pairs
-
-