You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2007/11/16 15:15:01 UTC
svn commit: r595670 -
/jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHeaderValueParser.java
Author: olegk
Date: Fri Nov 16 06:15:01 2007
New Revision: 595670
URL: http://svn.apache.org/viewvc?rev=595670&view=rev
Log:
BasicHeaderParser#parseNameValuePair can now optionally take an arbitrary set of delimiters
Modified:
jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHeaderValueParser.java
Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHeaderValueParser.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHeaderValueParser.java?rev=595670&r1=595669&r2=595670&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHeaderValueParser.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHeaderValueParser.java Fri Nov 16 06:15:01 2007
@@ -73,6 +73,10 @@
private final static char PARAM_DELIMITER = ';';
private final static char ELEM_DELIMITER = ',';
+ private final static char[] ALL_DELIMITERS = new char[] {
+ PARAM_DELIMITER,
+ ELEM_DELIMITER
+ };
// public default constructor
@@ -294,6 +298,23 @@
// non-javadoc, see interface HeaderValueParser
public NameValuePair parseNameValuePair(final CharArrayBuffer buffer,
final ParserCursor cursor) {
+ return parseNameValuePair(buffer, cursor, ALL_DELIMITERS);
+ }
+
+ private static boolean isOneOf(final char ch, final char[] chs) {
+ if (chs != null) {
+ for (int i = 0; i < chs.length; i++) {
+ if (ch == chs[i]) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ public NameValuePair parseNameValuePair(final CharArrayBuffer buffer,
+ final ParserCursor cursor,
+ final char[] delimiters) {
if (buffer == null) {
throw new IllegalArgumentException("Char array buffer may not be null");
@@ -315,7 +336,7 @@
if (ch == '=') {
break;
}
- if (ch == PARAM_DELIMITER || ch == ELEM_DELIMITER) {
+ if (isOneOf(ch, delimiters)) {
terminated = true;
break;
}
@@ -346,8 +367,7 @@
if (ch == '"' && !escaped) {
qouted = !qouted;
}
- if (!qouted && !escaped &&
- (ch == PARAM_DELIMITER || ch == ELEM_DELIMITER)) {
+ if (!qouted && !escaped && isOneOf(ch, delimiters)) {
terminated = true;
break;
}