Package org.apache.cocoon.components.request

Source Code of org.apache.cocoon.components.request.MultipartRequestFactoryImpl

/*
*
* ============================================================================
*                  The Apache Software License, Version 1.1
* ============================================================================
*
* Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modifica-
* tion, are permitted provided that the following conditions are met:
*
* 1. Redistributions of  source code must  retain the above copyright  notice,
*   this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
*   this list of conditions and the following disclaimer in the documentation
*   and/or other materials provided with the distribution.
*
* 3. The end-user documentation included with the redistribution, if any, must
*   include  the following  acknowledgment:  "This product includes  software
*   developed  by the  Apache Software Foundation  (http://www.apache.org/)."
*   Alternately, this  acknowledgment may  appear in the software itself,  if
*   and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
*   used to  endorse or promote  products derived from  this software without
*   prior written permission. For written permission, please contact
*   apache@apache.org.
*
* 5. Products  derived from this software may not  be called "Apache", nor may
*   "Apache" appear  in their name,  without prior written permission  of the
*   Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
* APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
* DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
* ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
* (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* This software  consists of voluntary contributions made  by many individuals
* on  behalf of the Apache Software  Foundation and was  originally created by
* Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
* Software Foundation, please see <http://www.apache.org/>.
*
*/
package org.apache.cocoon.components.request;

import org.apache.cocoon.components.request.multipart.MultipartRequestWrapper;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.util.Vector;

/**
*
* Extends the {@link RequestFactory} class
*
* @author <a href="mailto:dims@apache.org">Davanum Srinivas</a>
* @author <a href="mailto:j.tervoorde@home.nl">Jeroen ter Voorde</a>
* @version CVS $Id: MultipartRequestFactoryImpl.java,v 1.1.2.1 2002/07/15 14:10:35 cziegeler Exp $
*/
public final class MultipartRequestFactoryImpl extends RequestFactory {

    /**
     * Return a wrapped request object
     *
     * @param request
     * @param saveUploadedFilesToDisk
     * @param uploadDirectory
     * @param allowOverwrite
     * @param silentlyRename
     * @param maxUploadSize
     *
     * @return the request
     */
    public HttpServletRequest getServletRequest(HttpServletRequest request,
                                                boolean saveUploadedFilesToDisk,
                                                File uploadDirectory,
                                                boolean allowOverwrite,
                                                boolean silentlyRename,
                                                int maxUploadSize) {

        HttpServletRequest req         = request;
        String             contentType = req.getContentType();

        if (contentType == null) {
            contentType = "application/x-www-form-urlencoded";
        }
        if (contentType.startsWith("multipart/form-data")) {
            try {
                req = new MultipartRequestWrapper(request,
                                                    saveUploadedFilesToDisk,
                                                    uploadDirectory,
                                                    allowOverwrite,
                                                    silentlyRename,
                                                    maxUploadSize);
            } catch (Exception e) {
                req = request;
            }
        }
        return req;
    }

    /**
     * Implementation of the get method
     *
     * @param request
     * @param name
     *
     * @return the object
     */
    public Object get(HttpServletRequest request, String name) {
        // FIXME We should get rid of this instanceof test
        if (request instanceof MultipartRequestWrapper) {
            return ((MultipartRequestWrapper) request).get(name);
        } else {
            String[] values = request.getParameterValues(name);
            if (values == null) {
                return null;
            }
            if (values.length == 1) {
                return values[0];
            }
            if (values.length > 1) {
                Vector vect = new Vector(values.length);
                for (int i = 0; i < values.length; i++) {
                    vect.add(values[i]);
                }
                return vect;
            }
        }
        return null;
    }
}
TOP

Related Classes of org.apache.cocoon.components.request.MultipartRequestFactoryImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.