01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * 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.wicket.util.convert.converters;
18:
19: import java.text.DateFormat;
20: import java.util.Date;
21: import java.util.Locale;
22:
23: import org.apache.wicket.util.string.Strings;
24:
25: /**
26: * Converts from Object to Date.
27: *
28: * @author Eelco Hillenius
29: */
30: public class DateConverter extends AbstractConverter {
31: private static final long serialVersionUID = 1L;
32:
33: /**
34: * @see org.apache.wicket.util.convert.IConverter#convertToObject(java.lang.String,Locale)
35: */
36: public Object convertToObject(final String value, Locale locale) {
37: if (value == null || Strings.isEmpty(value)) {
38: return null;
39: } else {
40: return parse(getDateFormat(locale), value, locale);
41: }
42: }
43:
44: /**
45: * @see org.apache.wicket.util.convert.IConverter#convertToString(java.lang.String,
46: * Locale)
47: */
48: public String convertToString(final Object value, Locale locale) {
49: final DateFormat dateFormat = getDateFormat(locale);
50: if (dateFormat != null) {
51: return dateFormat.format(value);
52: }
53: return value.toString();
54: }
55:
56: /**
57: * @param locale
58: * @return Returns the date format.
59: */
60: public DateFormat getDateFormat(Locale locale) {
61: if (locale == null) {
62: locale = Locale.getDefault();
63: }
64:
65: return DateFormat.getDateInstance(DateFormat.SHORT, locale);
66: }
67:
68: /**
69: * @see org.apache.wicket.util.convert.converters.AbstractConverter#getTargetType()
70: */
71: protected Class getTargetType() {
72: return Date.class;
73: }
74: }
|