1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 package org.apache.commons.beanutils.converters; 18 19 import java.sql.Timestamp; 20 import java.text.DateFormat; 21 import java.util.Locale; 22 import java.util.TimeZone; 23 24 /** 25 * {@link DateTimeConverter} implementation that handles conversion to 26 * and from <b>java.sql.Timestamp</b> objects. 27 * <p> 28 * This implementation can be configured to handle conversion either 29 * by using java.sql.Timestamp's default String conversion, or by using a 30 * Locale's default format or by specifying a set of format patterns. 31 * See the {@link DateTimeConverter} documentation for further details. 32 * <p> 33 * Can be configured to either return a <i>default value</i> or throw a 34 * <code>ConversionException</code> if a conversion error occurs. 35 * 36 * @version $Id$ 37 * @since 1.3 38 */ 39 public final class SqlTimestampConverter extends DateTimeConverter { 40 41 /** 42 * Construct a <b>java.sql.Timestamp</b> <i>Converter</i> that throws 43 * a <code>ConversionException</code> if an error occurs. 44 */ 45 public SqlTimestampConverter() { 46 super(); 47 } 48 49 /** 50 * Construct a <b>java.sql.Timestamp</b> <i>Converter</i> that returns 51 * a default value if an error occurs. 52 * 53 * @param defaultValue The default value to be returned 54 * if the value to be converted is missing or an error 55 * occurs converting the value. 56 */ 57 public SqlTimestampConverter(final Object defaultValue) { 58 super(defaultValue); 59 } 60 61 /** 62 * Return the default type this <code>Converter</code> handles. 63 * 64 * @return The default type this <code>Converter</code> handles. 65 * @since 1.8.0 66 */ 67 @Override 68 protected Class<?> getDefaultType() { 69 return Timestamp.class; 70 } 71 72 /** 73 * Return a <code>DateFormat<code> for the Locale. 74 * @param locale TODO 75 * @param timeZone TODO 76 * 77 * @return The DateFormat. 78 * @since 1.8.0 79 */ 80 @Override 81 protected DateFormat getFormat(final Locale locale, final TimeZone timeZone) { 82 DateFormat format = null; 83 if (locale == null) { 84 format = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); 85 } else { 86 format = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, locale); 87 } 88 if (timeZone != null) { 89 format.setTimeZone(timeZone); 90 } 91 return format; 92 } 93 }