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 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 General Public License for more details.
018     *
019     * You should have received a copy of the GNU 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.standard.form.FormPostRequestProcessorBase;
042    
043    public class SimpleFormPostRequestProcessor extends FormPostRequestProcessorBase {
044    
045      private static final Logger logger = Logger.getLogger(SimpleFormPostRequestProcessor.class);
046      
047      public SimpleFormPostRequestProcessor(Registry registry, Dispatcher dispatcher, GlobalConfiguration globalConfiguration) {
048        super( registry, dispatcher, globalConfiguration);
049      }
050    
051      public void process(Reader reader, Writer writer) throws IOException {
052        String requestString = IOUtils.toString(reader);
053        if( logger.isDebugEnabled() ) {
054          logger.debug( "Request data (SIMPLE FORM)=>" + requestString );
055        }
056        Map<String, String> formParameters;
057        formParameters = getDecodedRequestParameters(requestString);    
058        String result = process(formParameters, new HashMap<String,FileItem>());
059        writer.write( result );
060        if( logger.isDebugEnabled() ) {
061          logger.debug( "Response data (SIMPLE FORM)=>" + result );
062        }
063      }
064    
065    }