001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements. See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License. You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017
018 package org.apache.commons.beanutils.locale.converters;
019
020 import java.sql.Timestamp;
021 import java.text.ParseException;
022 import java.util.Locale;
023
024 /**
025 * <p>Standard {@link org.apache.commons.beanutils.locale.LocaleConverter}
026 * implementation that converts an incoming
027 * locale-sensitive String into a <code>java.sql.Timestamp</code> object,
028 * optionally using a default value or throwing a
029 * {@link org.apache.commons.beanutils.ConversionException}
030 * if a conversion error occurs.</p>
031 *
032 * @author Yauheny Mikulski
033 */
034
035 public class SqlTimestampLocaleConverter extends DateLocaleConverter {
036
037
038 // ----------------------------------------------------------- Constructors
039
040 /**
041 * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
042 * that will throw a {@link org.apache.commons.beanutils.ConversionException}
043 * if a conversion error occurs. The locale is the default locale for
044 * this instance of the Java Virtual Machine and an unlocalized pattern is used
045 * for the convertion.
046 *
047 */
048 public SqlTimestampLocaleConverter() {
049
050 this(false);
051 }
052
053 /**
054 * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
055 * that will throw a {@link org.apache.commons.beanutils.ConversionException}
056 * if a conversion error occurs. The locale is the default locale for
057 * this instance of the Java Virtual Machine.
058 *
059 * @param locPattern Indicate whether the pattern is localized or not
060 */
061 public SqlTimestampLocaleConverter(boolean locPattern) {
062
063 this(Locale.getDefault(), locPattern);
064 }
065
066 /**
067 * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
068 * that will throw a {@link org.apache.commons.beanutils.ConversionException}
069 * if a conversion error occurs. An unlocalized pattern is used for the convertion.
070 *
071 * @param locale The locale
072 */
073 public SqlTimestampLocaleConverter(Locale locale) {
074
075 this(locale, (String) null);
076 }
077
078 /**
079 * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
080 * that will throw a {@link org.apache.commons.beanutils.ConversionException}
081 * if a conversion error occurs.
082 *
083 * @param locale The locale
084 * @param locPattern Indicate whether the pattern is localized or not
085 */
086 public SqlTimestampLocaleConverter(Locale locale, boolean locPattern) {
087
088 this(locale, (String) null);
089 }
090
091 /**
092 * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
093 * that will throw a {@link org.apache.commons.beanutils.ConversionException}
094 * if a conversion error occurs. An unlocalized pattern is used for the convertion.
095 *
096 * @param locale The locale
097 * @param pattern The convertion pattern
098 */
099 public SqlTimestampLocaleConverter(Locale locale, String pattern) {
100
101 this(locale, pattern, false);
102 }
103
104 /**
105 * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
106 * that will throw a {@link org.apache.commons.beanutils.ConversionException}
107 * if a conversion error occurs.
108 *
109 * @param locale The locale
110 * @param pattern The convertion pattern
111 * @param locPattern Indicate whether the pattern is localized or not
112 */
113 public SqlTimestampLocaleConverter(Locale locale, String pattern, boolean locPattern) {
114
115 super(locale, pattern, locPattern);
116 }
117
118 /**
119 * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
120 * that will return the specified default value
121 * if a conversion error occurs. The locale is the default locale for
122 * this instance of the Java Virtual Machine and an unlocalized pattern is used
123 * for the convertion.
124 *
125 * @param defaultValue The default value to be returned
126 */
127 public SqlTimestampLocaleConverter(Object defaultValue) {
128 this(defaultValue, false);
129 }
130
131 /**
132 * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
133 * that will return the specified default value
134 * if a conversion error occurs. The locale is the default locale for
135 * this instance of the Java Virtual Machine.
136 *
137 * @param defaultValue The default value to be returned
138 * @param locPattern Indicate whether the pattern is localized or not
139 */
140 public SqlTimestampLocaleConverter(Object defaultValue, boolean locPattern) {
141
142 this(defaultValue, Locale.getDefault(), locPattern);
143 }
144
145 /**
146 * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
147 * that will return the specified default value
148 * if a conversion error occurs. An unlocalized pattern is used for the convertion.
149 *
150 * @param defaultValue The default value to be returned
151 * @param locale The locale
152 */
153 public SqlTimestampLocaleConverter(Object defaultValue, Locale locale) {
154
155 this(defaultValue, locale, false);
156 }
157
158 /**
159 * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
160 * that will return the specified default value
161 * if a conversion error occurs.
162 *
163 * @param defaultValue The default value to be returned
164 * @param locale The locale
165 * @param locPattern Indicate whether the pattern is localized or not
166 */
167 public SqlTimestampLocaleConverter(Object defaultValue, Locale locale, boolean locPattern) {
168
169 this(defaultValue, locale, null, locPattern);
170 }
171
172 /**
173 * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
174 * that will return the specified default value
175 * if a conversion error occurs. An unlocalized pattern is used for the convertion.
176 *
177 * @param defaultValue The default value to be returned
178 * @param locale The locale
179 * @param pattern The convertion pattern
180 */
181 public SqlTimestampLocaleConverter(Object defaultValue, Locale locale, String pattern) {
182
183 this(defaultValue, locale, pattern, false);
184 }
185
186 /**
187 * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
188 * that will return the specified default value
189 * if a conversion error occurs.
190 *
191 * @param defaultValue The default value to be returned
192 * @param locale The locale
193 * @param pattern The convertion pattern
194 * @param locPattern Indicate whether the pattern is localized or not
195 */
196 public SqlTimestampLocaleConverter(Object defaultValue, Locale locale, String pattern, boolean locPattern) {
197
198 super(defaultValue, locale, pattern, locPattern);
199 }
200
201 // --------------------------------------------------------- Methods
202
203 /**
204 * Convert the specified locale-sensitive input object into an output object of the
205 * specified type.
206 *
207 * @param value The input object to be converted
208 * @param pattern The pattern is used for the convertion
209 * @return The converted value
210 *
211 * @exception org.apache.commons.beanutils.ConversionException if conversion
212 * cannot be performed successfully
213 * @throws ParseException if an error occurs parsing a String to a Number
214 */
215 protected Object parse(Object value, String pattern) throws ParseException {
216
217 return new Timestamp(((java.util.Date) super.parse(value, pattern)).getTime());
218 }
219 }