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.cocoon.forms.datatype.convertor;
18:
19: import org.xml.sax.ContentHandler;
20: import org.xml.sax.SAXException;
21:
22: import java.util.Locale;
23: import java.util.Date;
24:
25: /**
26: * A Convertor for Date objects which uses the number of milliseconds since
27: * January 1, 1970, 00:00:00 GMT as string representation.
28: *
29: * @version $Id: MillisDateConvertor.java 449149 2006-09-23 03:58:05Z crossley $
30: */
31: public class MillisDateConvertor implements Convertor {
32: public ConversionResult convertFromString(String value,
33: Locale locale, Convertor.FormatCache formatCache) {
34: try {
35: long date = Long.parseLong(value);
36: return new ConversionResult(new Date(date));
37: } catch (NumberFormatException e) {
38: return ConversionResult.create("date");
39: }
40: }
41:
42: public String convertToString(Object value, Locale locale,
43: Convertor.FormatCache formatCache) {
44: Date date = (Date) value;
45: return String.valueOf(date.getTime());
46: }
47:
48: public Class getTypeClass() {
49: return Date.class;
50: }
51:
52: public void generateSaxFragment(ContentHandler contentHandler,
53: Locale locale) throws SAXException {
54: // intentionally empty
55: }
56: }
|