1 package com.bradmcevoy.http.values;
2
3 import com.bradmcevoy.http.DateUtils;
4 import com.bradmcevoy.http.DateUtils.DateParseException;
5 import com.bradmcevoy.http.XmlWriter;
6 import java.util.Date;
7 import java.util.Map;
8
9 public class DateValueWriter implements ValueWriter {
10
11 public boolean supports( String nsUri, String localName, Class c ) {
12 return Date.class.equals( c );
13 }
14
15 public void writeValue( XmlWriter writer, String nsUri, String prefix, String localName, Object val, String href, Map<String, String> nsPrefixes ) {
16 if( val == null ) {
17 writer.writeProperty( prefix, localName );
18 } else {
19 Date date = (Date) val;
20 String s = DateUtils.formatDate( date );
21 writer.writeProperty( prefix, localName, s );
22 }
23 }
24
25 public Object parse( String namespaceURI, String localPart, String value ) {
26 if( value == null || value.length() == 0 ) return null;
27 Date dt;
28 try {
29 dt = DateUtils.parseDate( value );
30 return dt;
31 } catch( DateParseException ex ) {
32 throw new RuntimeException( value, ex );
33 }
34 }
35 }