Coverage Report - net.fckeditor.requestcycle.Context
 
Classes in this File Line Coverage Branch Coverage Complexity
Context
0%
0/23
0%
0/10
1,625
 
 1  
 /*
 2  
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
 3  
  * Copyright (C) 2004-2010 Frederico Caldeira Knabben
 4  
  * 
 5  
  * == BEGIN LICENSE ==
 6  
  * 
 7  
  * Licensed under the terms of any of the following licenses at your
 8  
  * choice:
 9  
  * 
 10  
  *  - GNU General Public License Version 2 or later (the "GPL")
 11  
  *    http://www.gnu.org/licenses/gpl.html
 12  
  * 
 13  
  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
 14  
  *    http://www.gnu.org/licenses/lgpl.html
 15  
  * 
 16  
  *  - Mozilla Public License Version 1.1 or later (the "MPL")
 17  
  *    http://www.mozilla.org/MPL/MPL-1.1.html
 18  
  * 
 19  
  * == END LICENSE ==
 20  
  */
 21  
 package net.fckeditor.requestcycle;
 22  
 
 23  
 import javax.servlet.http.HttpServletRequest;
 24  
 
 25  
 import net.fckeditor.connector.Dispatcher;
 26  
 import net.fckeditor.handlers.Command;
 27  
 import net.fckeditor.handlers.ResourceType;
 28  
 import net.fckeditor.tool.Utils;
 29  
 
 30  
 import org.slf4j.Logger;
 31  
 import org.slf4j.LoggerFactory;
 32  
 
 33  
 /**
 34  
  * Maintains base/common request parameters from the File Browser. The gain of
 35  
  * this class is to provide abstracted and pre-processed access to common
 36  
  * request parameters.
 37  
  * <p>
 38  
  * In the regular case, you will use an already created instance of this class.
 39  
  * </p>
 40  
  * 
 41  
  * @version $Id: Context.java 4785 2009-12-21 20:10:28Z mosipov $
 42  
  */
 43  
 public class Context {
 44  
         // This is just a helper class which has no relevance for the logger
 45  0
         private static final Logger logger = LoggerFactory.getLogger(Dispatcher.class);
 46  
         
 47  
         private String typeStr;
 48  
         private String commandStr;
 49  
         private String currentFolderStr;
 50  
         
 51  
         /**
 52  
          * Sole class constructor. Takes in a request instance, processes parameters
 53  
          * and populates private fields which can be accessed through getters.<br />
 54  
          * This class will only be instantiated in {@link ThreadLocalData}.
 55  
          * 
 56  
          * @param request
 57  
          *            current user request instance
 58  
          */
 59  0
         protected Context(final HttpServletRequest request) {
 60  0
                 commandStr = request.getParameter("Command");
 61  0
                 typeStr = request.getParameter("Type");
 62  0
                 currentFolderStr = request.getParameter("CurrentFolder");
 63  
                 
 64  
                 // if this is a QuickUpload request, 'commandStr', 'currentFolderStr'
 65  
                 // are empty and 'typeStr' maybe empty too
 66  0
                 if (Utils.isEmpty(commandStr) && Utils.isEmpty(currentFolderStr)) {
 67  0
                         commandStr = "QuickUpload";
 68  0
                         currentFolderStr = "/";
 69  0
                         if (Utils.isEmpty(typeStr))
 70  0
                                 typeStr = "File";
 71  
                 }
 72  
                 
 73  
                 // checks to meet specs in http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/Server_Side_Integration#File_Browser_Requests
 74  0
                 if (currentFolderStr != null && !currentFolderStr.startsWith("/"))
 75  0
                         currentFolderStr = "/".concat(currentFolderStr);
 76  0
         }
 77  
         
 78  
         /**
 79  
          * Returns the type parameter of this context.
 80  
          * 
 81  
          * @return the type parameter of this context
 82  
          */
 83  
         public String getTypeStr() {
 84  0
                 return typeStr;
 85  
         }
 86  
         
 87  
         /**
 88  
          * Returns a default resource type instance for the type parameter.
 89  
          * 
 90  
          * @see ResourceType#getDefaultResourceType(String)
 91  
          * @return default resource type instance
 92  
          */
 93  
         public ResourceType getDefaultResourceType() {
 94  0
                 return ResourceType.getDefaultResourceType(typeStr);
 95  
         }
 96  
 
 97  
         /**
 98  
          * Returns a resource type instance for the type parameter.
 99  
          * 
 100  
          * @see ResourceType#getResourceType(String)
 101  
          * @return resource type instance
 102  
          */
 103  
         public ResourceType getResourceType() {
 104  0
                 return ResourceType.getResourceType(typeStr);
 105  
         }
 106  
 
 107  
         /**
 108  
          * Returns the command parameter of this context.
 109  
          * 
 110  
          * @return the command parameter of this context
 111  
          */
 112  
         public String getCommandStr() {
 113  0
                 return commandStr;
 114  
         }
 115  
 
 116  
         /**
 117  
          * Returns a command instance for the command parameter.
 118  
          * 
 119  
          * @see Command#getCommand(String)
 120  
          * @return command instance
 121  
          */
 122  
         public Command getCommand() {
 123  0
                 return Command.getCommand(commandStr);
 124  
         }
 125  
         
 126  
         /**
 127  
          * Returns the current folder parameter of this context.
 128  
          * 
 129  
          * @return the current folder parameter of this context
 130  
          */
 131  
         public String getCurrentFolderStr() {
 132  0
                 return currentFolderStr;
 133  
         }
 134  
         
 135  
         /** Logs base/common request parameters. */
 136  
         public void logBaseParameters() {
 137  0
                 logger.debug("Parameter Command: {}", commandStr);
 138  0
                 logger.debug("Parameter Type: {}", typeStr);
 139  0
                 logger.debug("Parameter CurrentFolder: {}", currentFolderStr);
 140  0
         }
 141  
 
 142  
 }