001    /*
002     * Copyright © 2008, 2009 Pedro Agulló Soliveres.
003     * 
004     * This file is part of DirectJNgine.
005     *
006     * DirectJNgine is free software: you can redistribute it and/or modify
007     * it under the terms of the GNU Lesser General Public License as published by
008     * the Free Software Foundation, either version 3 of the License.
009     *
010     * Commercial use is permitted to the extent that the code/component(s)
011     * do NOT become part of another Open Source or Commercially developed
012     * licensed development library or toolkit without explicit permission.
013     *
014     * DirectJNgine is distributed in the hope that it will be useful,
015     * but WITHOUT ANY WARRANTY; without even the implied warranty of
016     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
017     * GNU Lesser General Public License for more details.
018     *
019     * You should have received a copy of the GNU Lesser General Public License
020     * along with DirectJNgine.  If not, see <http://www.gnu.org/licenses/>.
021     * 
022     * This software uses the ExtJs library (http://extjs.com), which is 
023     * distributed under the GPL v3 license (see http://extjs.com/license).
024     */
025    
026    package com.softwarementors.extjs.djn.router.processor.standard.form.simple;
027    
028    import java.io.IOException;
029    import java.io.Reader;
030    import java.io.Writer;
031    import java.util.HashMap;
032    import java.util.Map;
033    
034    import org.apache.commons.fileupload.FileItem;
035    import org.apache.commons.io.IOUtils;
036    import org.apache.log4j.Logger;
037    
038    import com.softwarementors.extjs.djn.api.Registry;
039    import com.softwarementors.extjs.djn.config.GlobalConfiguration;
040    import com.softwarementors.extjs.djn.router.dispatcher.Dispatcher;
041    import com.softwarementors.extjs.djn.router.processor.RequestProcessorUtils;
042    import com.softwarementors.extjs.djn.router.processor.standard.form.FormPostRequestProcessorBase;
043    
044    import edu.umd.cs.findbugs.annotations.NonNull;
045    
046    public class SimpleFormPostRequestProcessor extends FormPostRequestProcessorBase {
047    
048      @NonNull
049      private static final Logger logger = Logger.getLogger(SimpleFormPostRequestProcessor.class);
050      
051      public SimpleFormPostRequestProcessor(Registry registry, Dispatcher dispatcher, GlobalConfiguration globalConfiguration) {
052        super( registry, dispatcher, globalConfiguration);
053      }
054    
055      public void process(Reader reader, Writer writer) throws IOException {
056        String requestString = IOUtils.toString(reader);
057        if( logger.isDebugEnabled() ) {
058          logger.debug( "Request data (SIMPLE FORM)=>" + requestString );
059        }
060        Map<String, String> formParameters;
061        formParameters = RequestProcessorUtils.getDecodedRequestParameters(requestString);    
062        String result = process(formParameters, new HashMap<String,FileItem>());
063        writer.write( result );
064        if( logger.isDebugEnabled() ) {
065          logger.debug( "ResponseData data (SIMPLE FORM)=>" + result );
066        }
067      }
068    
069    }