Use enum instead of integer/string constants
git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/parser@1371473 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/java/org/apache/fulcrum/parser/DefaultParserService.java b/src/java/org/apache/fulcrum/parser/DefaultParserService.java
index fdbf5ca..22d674f 100644
--- a/src/java/org/apache/fulcrum/parser/DefaultParserService.java
+++ b/src/java/org/apache/fulcrum/parser/DefaultParserService.java
@@ -34,7 +34,9 @@
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.avalon.framework.service.Serviceable;
import org.apache.commons.fileupload.FileItem;
+import org.apache.commons.fileupload.FileItemIterator;
import org.apache.commons.lang.StringUtils;
+import org.apache.fulcrum.parser.ValueParser.URLCaseFolding;
import org.apache.fulcrum.pool.PoolException;
import org.apache.fulcrum.pool.PoolService;
import org.apache.fulcrum.upload.UploadService;
@@ -53,7 +55,7 @@
Configurable, Serviceable
{
/** The folding from the configuration */
- private int folding = URL_CASE_FOLDING_NONE;
+ private URLCaseFolding folding = URLCaseFolding.NONE;
/** The automaticUpload setting from the configuration */
private boolean automaticUpload = AUTOMATIC_DEFAULT;
@@ -87,7 +89,7 @@
* string so that it does not destroy the value data.
*
* @param value A String to be processed.
- * @return A new String converted to lowercase and trimmed.
+ * @return A new String converted to the case as specified by URL_CASE_FOLDING and trimmed.
*/
public String convert(String value)
{
@@ -116,7 +118,7 @@
* @param value A String to be processed.
* @return A new String converted to lowercase and trimmed.
*/
- public String convertAndTrim(String value, int fold)
+ public String convertAndTrim(String value, URLCaseFolding fold)
{
if(value == null) return "";
@@ -124,18 +126,18 @@
switch (fold)
{
- case URL_CASE_FOLDING_NONE:
+ case NONE:
{
break;
}
- case URL_CASE_FOLDING_LOWER:
+ case LOWER:
{
tmp = tmp.toLowerCase();
break;
}
- case URL_CASE_FOLDING_UPPER:
+ case UPPER:
{
tmp = tmp.toUpperCase();
break;
@@ -155,7 +157,7 @@
*
* @return The current Folding Value
*/
- public int getUrlFolding()
+ public URLCaseFolding getUrlFolding()
{
return folding;
}
@@ -174,7 +176,7 @@
* Use the UploadService if available to parse the given request
* for uploaded files
*
- * @return A list of {@link org.apache.commons.upload.FileItem}s
+ * @return A list of {@link org.apache.commons.fileupload.FileItem}s
*
* @throws ServiceException if parsing fails or the UploadService
* is not available
@@ -192,6 +194,27 @@
}
/**
+ * Use the UploadService if available to parse the given request
+ * for uploaded files using the streaming API
+ *
+ * @return A {@link org.apache.commons.fileupload.FileItemIterator}
+ *
+ * @throws ServiceException if parsing fails or the UploadService
+ * is not available
+ */
+ public FileItemIterator getItemIterator(HttpServletRequest request) throws ServiceException
+ {
+ if (uploadService == null)
+ {
+ throw new ServiceException(ParserService.ROLE, "UploadService is not available.");
+ }
+ else
+ {
+ return uploadService.getItemIterator(request);
+ }
+ }
+
+ /**
* Get a {@link ValueParser} instance from the service. Use the
* given Class to create the object.
*
@@ -246,33 +269,22 @@
*/
public void configure(Configuration conf) throws ConfigurationException
{
- if (folding == URL_CASE_FOLDING_UNSET)
+ String foldString = conf.getChild(URL_CASE_FOLDING_KEY).getValue(URLCaseFolding.NONE.name()).toLowerCase();
+
+ folding = URLCaseFolding.NONE;
+
+ getLogger().debug("Setting folding from " + foldString);
+
+ if (StringUtils.isNotEmpty(foldString))
{
- String foldString = conf.getChild(URL_CASE_FOLDING_KEY).getValue(URL_CASE_FOLDING_NONE_VALUE).toLowerCase();
-
- folding = URL_CASE_FOLDING_NONE;
-
- getLogger().debug("Setting folding from " + foldString);
-
- if (StringUtils.isNotEmpty(foldString))
+ try
{
- if (foldString.equals(URL_CASE_FOLDING_NONE_VALUE))
- {
- folding = URL_CASE_FOLDING_NONE;
- }
- else if (foldString.equals(URL_CASE_FOLDING_LOWER_VALUE))
- {
- folding = URL_CASE_FOLDING_LOWER;
- }
- else if (foldString.equals(URL_CASE_FOLDING_UPPER_VALUE))
- {
- folding = URL_CASE_FOLDING_UPPER;
- }
- else
- {
- getLogger().error("Got " + foldString + " from " + URL_CASE_FOLDING_KEY + " property, which is illegal!");
- throw new ConfigurationException("Value " + foldString + " is illegal!");
- }
+ folding = URLCaseFolding.valueOf(foldString.toUpperCase());
+ }
+ catch (IllegalArgumentException e)
+ {
+ getLogger().error("Got " + foldString + " from " + URL_CASE_FOLDING_KEY + " property, which is illegal!");
+ throw new ConfigurationException("Value " + foldString + " is illegal!", e);
}
}
@@ -280,7 +292,7 @@
.getValue(PARAMETER_ENCODING_DEFAULT).toLowerCase();
automaticUpload = conf.getChild(AUTOMATIC_KEY).getValueAsBoolean(AUTOMATIC_DEFAULT);
-
+
}
// ---------------- Avalon Lifecycle Methods ---------------------