You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by de...@apache.org on 2017/09/17 12:30:03 UTC
[myfaces-trinidad] 22/30: Checkpoint: added
Enums.parseDisplayNameEnumRequestParameter() convenience method.
This is an automated email from the ASF dual-hosted git repository.
deki pushed a commit to branch andys-skin-pregen
in repository https://gitbox.apache.org/repos/asf/myfaces-trinidad.git
commit de3a2b5a0c7173dffd9ab455ac560da9c34fdede
Author: Andy Schwartz <an...@apache.org>
AuthorDate: Fri Mar 16 19:53:24 2012 +0000
Checkpoint: added Enums.parseDisplayNameEnumRequestParameter() convenience method.
---
.../org/apache/myfaces/trinidad/util/Enums.java | 41 ++++++++++++++++++++++
.../myfaces/trinidad/resource/LoggerBundle.xrts | 2 ++
.../skin/pregen/config/PregenConfig.java | 30 +++-------------
.../trinidadinternal/resource/LoggerBundle.xrts | 2 --
4 files changed, 48 insertions(+), 27 deletions(-)
diff --git a/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Enums.java b/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Enums.java
index f7d7862..c78d93e 100644
--- a/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Enums.java
+++ b/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Enums.java
@@ -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);
}
diff --git a/trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/LoggerBundle.xrts b/trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/LoggerBundle.xrts
index 6bd9c9f..fee54b5 100644
--- a/trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/LoggerBundle.xrts
+++ b/trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/LoggerBundle.xrts
@@ -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>
diff --git a/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/config/PregenConfig.java b/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/config/PregenConfig.java
index 69f5260..95c5384 100644
--- a/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/config/PregenConfig.java
+++ b/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/config/PregenConfig.java
@@ -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.
*
diff --git a/trinidad-impl/src/main/xrts/org/apache/myfaces/trinidadinternal/resource/LoggerBundle.xrts b/trinidad-impl/src/main/xrts/org/apache/myfaces/trinidadinternal/resource/LoggerBundle.xrts
index aa65d7f..5f9d6d4 100644
--- a/trinidad-impl/src/main/xrts/org/apache/myfaces/trinidadinternal/resource/LoggerBundle.xrts
+++ b/trinidad-impl/src/main/xrts/org/apache/myfaces/trinidadinternal/resource/LoggerBundle.xrts
@@ -1190,8 +1190,6 @@ The skin {0} specified on the requestMap will be used even though the consumer''
<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>
--
To stop receiving notification emails like this one, please contact
"commits@myfaces.apache.org" <co...@myfaces.apache.org>.