1 16 17 package org.apache.axis.encoding.ser; 18 19 import org.apache.axis.Constants; 20 import org.apache.axis.encoding.SerializationContext; 21 import org.apache.axis.encoding.SimpleValueSerializer; 22 import org.apache.axis.wsdl.fromJava.Types; 23 import org.w3c.dom.Element ; 24 import org.xml.sax.Attributes ; 25 26 import javax.xml.namespace.QName ; 27 import java.io.IOException ; 28 import java.text.SimpleDateFormat ; 29 import java.util.Calendar ; 30 import java.util.Date ; 31 import java.util.GregorianCalendar ; 32 33 40 public class DateSerializer implements SimpleValueSerializer { 41 42 private static SimpleDateFormat zulu = 43 new SimpleDateFormat ("yyyy-MM-dd"); 44 45 private static Calendar calendar = Calendar.getInstance(); 46 47 50 public void serialize(QName name, Attributes attributes, 51 Object value, SerializationContext context) 52 throws IOException 53 { 54 context.startElement(name, attributes); 55 context.writeString(getValueAsString(value, context)); 56 context.endElement(); 57 } 58 59 public String getValueAsString(Object value, SerializationContext context) { 60 StringBuffer buf = new StringBuffer (); 61 synchronized (calendar) { 62 if(value instanceof Calendar ) { 63 value = ((Calendar )value).getTime(); 64 } 65 if (calendar.get(Calendar.ERA) == GregorianCalendar.BC) { 66 buf.append("-"); 67 calendar.setTime((Date )value); 68 calendar.set(Calendar.ERA, GregorianCalendar.AD); 69 value = calendar.getTime(); 70 } 71 buf.append(zulu.format((Date )value)); 72 } 73 return buf.toString(); 74 } 75 76 public String getMechanismType() { return Constants.AXIS_SAX; } 77 78 89 public Element writeSchema(Class javaType, Types types) throws Exception { 90 return null; 91 } 92 } 93 | Popular Tags |