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 * @author Craig R. McClanahan 37 * @version $Revision: 690380 $ $Date: 2008-08-29 16:04:38 -0400 (Fri, 29 Aug 2008) $ 38 * @since 1.3 39 */ 40 public final class SqlTimestampConverter extends DateTimeConverter { 41 42 /** 43 * Construct a <b>java.sql.Timestamp</b> <i>Converter</i> that throws 44 * a <code>ConversionException</code> if an error occurs. 45 */ 46 public SqlTimestampConverter() { 47 super(); 48 } 49 50 /** 51 * Construct a <b>java.sql.Timestamp</b> <i>Converter</i> that returns 52 * a default value if an error occurs. 53 * 54 * @param defaultValue The default value to be returned 55 * if the value to be converted is missing or an error 56 * occurs converting the value. 57 */ 58 public SqlTimestampConverter(Object defaultValue) { 59 super(defaultValue); 60 } 61 62 /** 63 * Return the default type this <code>Converter</code> handles. 64 * 65 * @return The default type this <code>Converter</code> handles. 66 * @since 1.8.0 67 */ 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 protected DateFormat getFormat(Locale locale, TimeZone timeZone) { 81 DateFormat format = null; 82 if (locale == null) { 83 format = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); 84 } else { 85 format = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, locale); 86 } 87 if (timeZone != null) { 88 format.setTimeZone(timeZone); 89 } 90 return format; 91 } 92 }