You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by an...@apache.org on 2012/03/16 20:53:24 UTC
svn commit: r1301720 - in /myfaces/trinidad/branches/andys-skin-pregen:
trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/
trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/
trinidad-impl/src/main/java/org/apache/myfaces/trinida...
Author: andys
Date: Fri Mar 16 19:53:24 2012
New Revision: 1301720
URL: http://svn.apache.org/viewvc?rev=1301720&view=rev
Log:
Checkpoint: added Enums.parseDisplayNameEnumRequestParameter() convenience method.
Modified:
myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Enums.java
myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/LoggerBundle.xrts
myfaces/trinidad/branches/andys-skin-pregen/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/config/PregenConfig.java
myfaces/trinidad/branches/andys-skin-pregen/trinidad-impl/src/main/xrts/org/apache/myfaces/trinidadinternal/resource/LoggerBundle.xrts
Modified: myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Enums.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Enums.java?rev=1301720&r1=1301719&r2=1301720&view=diff
==============================================================================
--- myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Enums.java (original)
+++ myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Enums.java Fri Mar 16 19:53:24 2012
@@ -405,6 +405,47 @@ public final class Enums
}
}
+ /**
+ * Convenience for Enums.parseEnumRequestParameter() that uses a display name-based
+ * EnumParser to parse values.
+ *
+ * In addition, a display name-based StringProducer is used to provide a more
+ * detailed error message in the event of a parse exception.
+ *
+ * @see #parseEnumRequestParameter
+ * @see #displayNameEnumParser
+ * @see #displayNameStringProducer
+ */
+ public static <E extends Enum> Collection<E> parseDisplayNameEnumRequestParameter(
+ ExternalContext external,
+ String paramName,
+ Class<E> enumClass,
+ E defaultValue
+ ) throws EnumParseException
+ {
+ Collection<String> paramValues = _getRequestParamValues(external, paramName);
+ EnumParser<E> enumParser = displayNameEnumParser(enumClass);
+
+ try
+ {
+ return Enums.parseEnumValues(paramValues, enumClass, enumParser, defaultValue);
+ }
+ catch (EnumParseException e)
+ {
+ // Re-throw with a more detailed error message
+ String illegalValue = e.getIllegalValue();
+ String validValues = Enums.patternOf(enumClass,
+ Enums.displayNameStringProducer(enumClass));
+
+ String message = _LOG.getMessage("ILLEGAL_REQUEST_PARAMETER_VALUE",
+ new Object[] {
+ illegalValue,
+ paramName,
+ validValues });
+
+ throw new EnumParseException(message, illegalValue);
+ }
+ }
static private final TrinidadLogger _LOG =
TrinidadLogger.createTrinidadLogger(Enums.class);
}
Modified: myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/LoggerBundle.xrts
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/LoggerBundle.xrts?rev=1301720&r1=1301719&r2=1301720&view=diff
==============================================================================
--- myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/LoggerBundle.xrts (original)
+++ myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/LoggerBundle.xrts Fri Mar 16 19:53:24 2012
@@ -533,4 +533,6 @@
<resource key="DIRECTORY_NOT_WRITABLE">The directory {0} exists, but is not writable.</resource>
+<resource key="ILLEGAL_REQUEST_PARAMETER_VALUE">'{0}' is not a valid value for request parameter '{1}'. Valid values are: {2}</resource>
+
</resources>
Modified: myfaces/trinidad/branches/andys-skin-pregen/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/config/PregenConfig.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/andys-skin-pregen/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/config/PregenConfig.java?rev=1301720&r1=1301719&r2=1301720&view=diff
==============================================================================
--- myfaces/trinidad/branches/andys-skin-pregen/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/config/PregenConfig.java (original)
+++ myfaces/trinidad/branches/andys-skin-pregen/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/config/PregenConfig.java Fri Mar 16 19:53:24 2012
@@ -138,37 +138,17 @@ abstract public class PregenConfig
{
try
{
- return Enums.parseEnumRequestParameter(external,
- paramName,
- enumClass,
- Enums.displayNameEnumParser(enumClass),
- defaultValue);
+ return Enums.parseDisplayNameEnumRequestParameter(external,
+ paramName,
+ enumClass,
+ defaultValue);
}
catch (EnumParseException e)
{
- String message = _getIllegalDisplayNameRequestParamMessage(paramName,
- e.getIllegalValue(),
- enumClass);
- throw new InvalidConfigException(message);
+ throw new InvalidConfigException(e.getMessage());
}
}
- private static <E extends Enum> String _getIllegalDisplayNameRequestParamMessage(
- String paramName,
- String paramValue,
- Class<E> enumClass
- )
- {
- String validValues = Enums.patternOf(enumClass,
- Enums.displayNameStringProducer(enumClass));
-
- return _LOG.getMessage("ILLEGAL_REQUEST_PARAMETER_VALUE",
- new Object[] {
- paramValue,
- paramName,
- validValues });
- }
-
/**
* Returns the (non-null) platform variants to pregenerate.
*
Modified: myfaces/trinidad/branches/andys-skin-pregen/trinidad-impl/src/main/xrts/org/apache/myfaces/trinidadinternal/resource/LoggerBundle.xrts
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/andys-skin-pregen/trinidad-impl/src/main/xrts/org/apache/myfaces/trinidadinternal/resource/LoggerBundle.xrts?rev=1301720&r1=1301719&r2=1301720&view=diff
==============================================================================
--- myfaces/trinidad/branches/andys-skin-pregen/trinidad-impl/src/main/xrts/org/apache/myfaces/trinidadinternal/resource/LoggerBundle.xrts (original)
+++ myfaces/trinidad/branches/andys-skin-pregen/trinidad-impl/src/main/xrts/org/apache/myfaces/trinidadinternal/resource/LoggerBundle.xrts Fri Mar 16 19:53:24 2012
@@ -1190,8 +1190,6 @@ The skin {0} specified on the requestMap
<resource key="SKIN_PREGEN_COMPLETED">Completed pregeneration of skin {0}. Generated {1} files for {2} of {3} skin variants in {4} ms. (Pregeneration output written to {5}.)</resource>
-<resource key="ILLEGAL_REQUEST_PARAMETER_VALUE">{0} is not a valid value for request parameter {1}. Valid values are: {2}</resource>
-
<resource key="ILLEGAL_SYSTEM_PROPERTY_VALUE">{0} is not a valid value for system property {1}. Valid values are: {2}</resource>
<resource key="SKIN_EMPTY_VERSION_RANGE">An unexecpted empty version range was detected during style sheet generation, possibly indicating a Trinidad skinning defect.</resource>