Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
commons-fileupload-1.3.3-sources.jar - Apache Commons FileUpload
commons-fileupload-1.3.3-sources.jar is the source JAR file for Apache Commons FileUpload 1.3., which
adds robust, high-performance, file upload capability to your servlets and web applications.
JAR File Size and Download Location:
JAR name: commons-fileupload-1.3.3-sources.jar Target JDK version: 1.5 Dependency: commons-io.jar File size: 280,834 bytes Release date: 09-Jun-2017 Download: Apache Commons FileUpload
✍: FYIcenter.com
⏎ org/apache/commons/fileupload/ParameterParser.java
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.commons.fileupload; import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.Locale; import java.util.Map; import org.apache.commons.fileupload.util.mime.MimeUtility; /** * 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. * * <p> * <code>param1 = value; param2 = "anything goes; really"; param3</code> * </p> * * @version $Id$ */ public class ParameterParser { /** * String to be parsed. */ private char[] chars = null; /** * Current position in the string. */ private int pos = 0; /** * Maximum position in the string. */ private int len = 0; /** * Start of a token. */ private int i1 = 0; /** * End of a token. */ private int i2 = 0; /** * Whether names stored in the map should be converted to lower case. */ private boolean lowerCaseNames = false; /** * Default ParameterParser constructor. */ public ParameterParser() { super(); } /** * Are there any characters left to parse? * * @return <tt>true</tt> if there are unparsed characters, * <tt>false</tt> otherwise. */ private boolean hasChar() { return this.pos < this.len; } /** * A helper method to process the parsed token. This method removes * leading and trailing blanks as well as enclosing quotation marks, * when necessary. * * @param quoted <tt>true</tt> if quotation marks are expected, * <tt>false</tt> otherwise. * @return the token */ private String getToken(boolean quoted) { // Trim leading white spaces while ((i1 < i2) && (Character.isWhitespace(chars[i1]))) { i1++; } // Trim trailing white spaces while ((i2 > i1) && (Character.isWhitespace(chars[i2 - 1]))) { i2--; } // Strip away quotation marks if necessary if (quoted && ((i2 - i1) >= 2) && (chars[i1] == '"') && (chars[i2 - 1] == '"')) { i1++; i2--; } String result = null; if (i2 > i1) { result = new String(chars, i1, i2 - i1); } return result; } /** * Tests if the given character is present in the array of characters. * * @param ch the character to test for presense in the array of characters * @param charray the array of characters to test against * * @return <tt>true</tt> if the character is present in the array of * characters, <tt>false</tt> otherwise. */ private boolean isOneOf(char ch, final char[] charray) { boolean result = false; for (char element : charray) { if (ch == element) { result = true; break; } } return result; } /** * Parses out a token until any of the given terminators * is encountered. * * @param terminators the array of terminating characters. Any of these * characters when encountered signify the end of the token * * @return the token */ private String parseToken(final char[] terminators) { char ch; i1 = pos; i2 = pos; while (hasChar()) { ch = chars[pos]; if (isOneOf(ch, terminators)) { break; } i2++; pos++; } return getToken(false); } /** * Parses out a token until any of the given terminators * is encountered outside the quotation marks. * * @param terminators the array of terminating characters. Any of these * characters when encountered outside the quotation marks signify the end * of the token * * @return the token */ private String parseQuotedToken(final char[] terminators) { char ch; i1 = pos; i2 = pos; boolean quoted = false; boolean charEscaped = false; while (hasChar()) { ch = chars[pos]; if (!quoted && isOneOf(ch, terminators)) { break; } if (!charEscaped && ch == '"') { quoted = !quoted; } charEscaped = (!charEscaped && ch == '\\'); i2++; pos++; } return getToken(true); } /** * Returns <tt>true</tt> if parameter names are to be converted to lower * case when name/value pairs are parsed. * * @return <tt>true</tt> if parameter names are to be * converted to lower case when name/value pairs are parsed. * Otherwise returns <tt>false</tt> */ public boolean isLowerCaseNames() { return this.lowerCaseNames; } /** * Sets the flag if parameter names are to be converted to lower case when * name/value pairs are parsed. * * @param b <tt>true</tt> if parameter names are to be * converted to lower case when name/value pairs are parsed. * <tt>false</tt> otherwise. */ public void setLowerCaseNames(boolean b) { this.lowerCaseNames = b; } /** * 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. * * @param str the string that contains a sequence of name/value pairs * @param separators the name/value pairs separators * * @return a map of name/value pairs */ public Map<String, String> parse(final String str, char[] separators) { if (separators == null || separators.length == 0) { return new HashMap<String, String>(); } char separator = separators[0]; if (str != null) { int idx = str.length(); for (char separator2 : separators) { int tmp = str.indexOf(separator2); if (tmp != -1 && tmp < idx) { idx = tmp; separator = separator2; } } } return parse(str, separator); } /** * Extracts a map of name/value pairs from the given string. Names are * expected to be unique. * * @param str the string that contains a sequence of name/value pairs * @param separator the name/value pairs separator * * @return a map of name/value pairs */ public Map<String, String> parse(final String str, char separator) { if (str == null) { return new HashMap<String, String>(); } return parse(str.toCharArray(), separator); } /** * Extracts a map of name/value pairs from the given array of * characters. Names are expected to be unique. * * @param charArray the array of characters that contains a sequence of * name/value pairs * @param separator the name/value pairs separator * * @return a map of name/value pairs */ public Map<String, String> parse(final char[] charArray, char separator) { if (charArray == null) { return new HashMap<String, String>(); } return parse(charArray, 0, charArray.length, separator); } /** * Extracts a map of name/value pairs from the given array of * characters. Names are expected to be unique. * * @param charArray the array of characters that contains a sequence of * name/value pairs * @param offset - the initial offset. * @param length - the length. * @param separator the name/value pairs separator * * @return a map of name/value pairs */ public Map<String, String> parse( final char[] charArray, int offset, int length, char separator) { if (charArray == null) { return new HashMap<String, String>(); } HashMap<String, String> params = new HashMap<String, String>(); this.chars = charArray; this.pos = offset; this.len = length; String paramName = null; String paramValue = null; while (hasChar()) { paramName = parseToken(new char[] { '=', separator }); paramValue = null; if (hasChar() && (charArray[pos] == '=')) { pos++; // skip '=' paramValue = parseQuotedToken(new char[] { separator }); if (paramValue != null) { try { paramValue = MimeUtility.decodeText(paramValue); } catch (UnsupportedEncodingException e) { // let's keep the original value in this case } } } if (hasChar() && (charArray[pos] == separator)) { pos++; // skip separator } if ((paramName != null) && (paramName.length() > 0)) { if (this.lowerCaseNames) { paramName = paramName.toLowerCase(Locale.ENGLISH); } params.put(paramName, paramValue); } } return params; } }
⏎ org/apache/commons/fileupload/ParameterParser.java
Or download all of them as a single archive file:
File name: commons-fileupload-1.3.3-sources.zip File size: 90434 bytes Release date: 2017-06-09 Download
⇒ Download and Install commons-fileupload-1.3.2-bin.zip
⇐ What Is commons-fileupload-1.3.3.jar
2022-11-10, 28709👍, 0💬
Popular Posts:
Apache Log4j SLF4J Binding allows applications coded to the SLF4J API to use Log4j 2 as the implemen...
What Is javaws.jar in JRE (Java Runtime Environment) 8? javaws.jar in JRE (Java Runtime Environment)...
How to download and install ojdbc14.jar for Oracle 10g R2? ojdbc14.jar for Oracle 10g R2 is a Java 1...
XOM™ is a new XML object model. It is an open source (LGPL), tree-based API for processing XML with ...
What Is HttpComponents httpcore-4.4.6.jar? HttpComponents httpcore-4.4.6.jar is the JAR file for Apa...