From 85ab789f2f52f2b3d159f91076a8bcd1a77c9f27 Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Tue, 6 Nov 2012 18:07:32 +0100 Subject: [PATCH] Refactor & polish DateTimeFormatterFactory[Bean] This commit refactors the logic in DateTimeFormatterFactory's createDateTimeFormatter() method to ensure forward compatibility with possible future changes to the ISO enum. This commit also polishes the Javadoc for DateTimeFormatterFactoryBean. Issue: SPR-9959 --- .../joda/DateTimeFormatterFactory.java | 23 ++++++++++++------- .../joda/DateTimeFormatterFactoryBean.java | 4 ++-- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/spring-context/src/main/java/org/springframework/format/datetime/joda/DateTimeFormatterFactory.java b/spring-context/src/main/java/org/springframework/format/datetime/joda/DateTimeFormatterFactory.java index 30ca9615a5c..412367d3082 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/joda/DateTimeFormatterFactory.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/joda/DateTimeFormatterFactory.java @@ -94,14 +94,21 @@ public class DateTimeFormatterFactory { dateTimeFormatter = DateTimeFormat.forPattern(pattern); } else if (iso != null && iso != ISO.NONE) { - if (iso == ISO.DATE) { - dateTimeFormatter = ISODateTimeFormat.date(); - } - else if (iso == ISO.TIME) { - dateTimeFormatter = ISODateTimeFormat.time(); - } - else { - dateTimeFormatter = ISODateTimeFormat.dateTime(); + switch (iso) { + case DATE: + dateTimeFormatter = ISODateTimeFormat.date(); + break; + case TIME: + dateTimeFormatter = ISODateTimeFormat.time(); + break; + case DATE_TIME: + dateTimeFormatter = ISODateTimeFormat.dateTime(); + break; + case NONE: + /* no-op */ + break; + default: + throw new IllegalStateException("Unsupported ISO format: " + iso); } } else if (StringUtils.hasLength(style)) { diff --git a/spring-context/src/main/java/org/springframework/format/datetime/joda/DateTimeFormatterFactoryBean.java b/spring-context/src/main/java/org/springframework/format/datetime/joda/DateTimeFormatterFactoryBean.java index d38ff217976..cfd017751b3 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/joda/DateTimeFormatterFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/joda/DateTimeFormatterFactoryBean.java @@ -21,8 +21,8 @@ import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.InitializingBean; /** - * {@link FactoryBean} that creates a Joda {@link DateTimeFormatter}. See the base class - * {@linkplain DateTimeFormatterFactory} for configuration details. + * {@link FactoryBean} that creates a Joda {@link DateTimeFormatter}. See the + * {@linkplain DateTimeFormatterFactory base class} for configuration details. * * @author Phillip Webb * @author Sam Brannen