You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by oh...@apache.org on 2013/08/22 21:58:05 UTC
svn commit: r1516571 - in /commons/proper/configuration/trunk/src:
main/java/org/apache/commons/configuration/convert/DefaultConversionHandler.java
test/java/org/apache/commons/configuration/convert/TestDefaultConversionHandler.java
Author: oheger
Date: Thu Aug 22 19:58:04 2013
New Revision: 1516571
URL: http://svn.apache.org/r1516571
Log:
Added a property for the date format to DefaultConversionHandler.
This format string specified here will be used for conversions to Date or
Calendar objects.
Modified:
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/convert/DefaultConversionHandler.java
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/convert/TestDefaultConversionHandler.java
Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/convert/DefaultConversionHandler.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/convert/DefaultConversionHandler.java?rev=1516571&r1=1516570&r2=1516571&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/convert/DefaultConversionHandler.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/convert/DefaultConversionHandler.java Thu Aug 22 19:58:04 2013
@@ -50,6 +50,9 @@ import org.apache.commons.lang3.ClassUti
*/
public class DefaultConversionHandler implements ConversionHandler
{
+ /** The default format for dates. */
+ public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
+
/** A helper object used for extracting values from complex objects. */
private static final AbstractListDelimiterHandler EXTRACTOR =
(AbstractListDelimiterHandler) DisabledListDelimiterHandler.INSTANCE;
@@ -68,6 +71,35 @@ public class DefaultConversionHandler im
};
};
+ /** The current date format. */
+ private volatile String dateFormat;
+
+ /**
+ * Returns the date format used by this conversion handler.
+ *
+ * @return the date format
+ */
+ public String getDateFormat()
+ {
+ String fmt = dateFormat;
+ return (fmt != null) ? fmt : DEFAULT_DATE_FORMAT;
+ }
+
+ /**
+ * Sets the date format to be used by this conversion handler. This format
+ * is applied by conversions to {@code Date} or {@code Calendar} objects.
+ * The string is passed to the {@code java.text.SimpleDateFormat} class, so
+ * it must be compatible with this class. If no date format has been set, a
+ * default format is used.
+ *
+ * @param dateFormat the date format string
+ * @see #DEFAULT_DATE_FORMAT
+ */
+ public void setDateFormat(String dateFormat)
+ {
+ this.dateFormat = dateFormat;
+ }
+
public <T> T to(Object src, Class<T> targetCls, ConfigurationInterpolator ci)
{
ConfigurationInterpolator interpolator = fetchInterpolator(ci);
Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/convert/TestDefaultConversionHandler.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/convert/TestDefaultConversionHandler.java?rev=1516571&r1=1516570&r2=1516571&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/convert/TestDefaultConversionHandler.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/convert/TestDefaultConversionHandler.java Thu Aug 22 19:58:04 2013
@@ -283,4 +283,27 @@ public class TestDefaultConversionHandle
assertEquals("Wrong element (2)", Integer.parseInt(src.get(1)),
array[1]);
}
+
+ /**
+ * Tests whether the default date format is used if no format has been set.
+ */
+ @Test
+ public void testGetDateFormatNotSet()
+ {
+ assertEquals("Wrong date format",
+ DefaultConversionHandler.DEFAULT_DATE_FORMAT,
+ handler.getDateFormat());
+ }
+
+ /**
+ * Tests whether the date format can be changed.
+ */
+ @Test
+ public void testSetDateFormat()
+ {
+ String dateFormat = "dd.mm.yyyy";
+ handler.setDateFormat(dateFormat);
+ assertEquals("Date format not changed", dateFormat,
+ handler.getDateFormat());
+ }
}