1 package org.codehaus.xfire.java.message; 2 3 import java.util.Calendar; 4 import java.util.Date; 5 import java.util.List; 6 7 import org.codehaus.xfire.util.DateUtils; 8 import org.codehaus.xfire.util.NamespaceHelper; 9 import org.dom4j.Element; 10 import org.dom4j.Namespace; 11 import org.dom4j.QName; 12 13 /*** 14 * LiteralWriter 15 * 16 * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a> 17 */ 18 public class LiteralWriter 19 implements MessageWriter 20 { 21 private Element element; 22 23 private Namespace namespace; 24 25 private static Calendar calendar = Calendar.getInstance(); 26 27 public LiteralWriter( Element element ) 28 { 29 this.element = element; 30 this.namespace = element.getNamespace(); 31 } 32 33 /*** 34 * @see org.codehaus.xfire.java.message.MessageWriter#writeValue(java.lang.Object) 35 */ 36 public void writeValue(Object value) 37 { 38 if ( value != null ) 39 getElement().setText( value.toString() ); 40 } 41 42 /*** 43 * @see org.codehaus.xfire.java.message.MessageWriter#getWriter(java.lang.String) 44 */ 45 public MessageWriter getWriter(String name) 46 { 47 Element child = element.addElement( new QName( name, namespace ) ); 48 49 return new LiteralWriter( child ); 50 } 51 52 public String getNamespace() 53 { 54 return namespace.getURI(); 55 } 56 57 public void setNamespace(String namespace) 58 { 59 this.namespace = NamespaceHelper.getNamespace( getElement(), namespace ); 60 } 61 62 /*** 63 * @see org.codehaus.xfire.java.message.MessageWriter#writeValueAsCalendar(java.util.Calendar) 64 */ 65 public void writeValueAsCalendar(Calendar calendar) 66 { 67 DateUtils.formatDateTime( calendar.getTime() ); 68 } 69 70 /*** 71 * @see org.codehaus.xfire.java.message.MessageWriter#writeValueAsInt(java.lang.Integer) 72 */ 73 public void writeValueAsInt(Integer i) 74 { 75 writeValue( i.toString() ); 76 } 77 78 /*** 79 * @see org.codehaus.xfire.java.message.MessageWriter#writeValueAsDate(java.util.Date) 80 */ 81 public void writeValueAsDateTime(Date date) 82 { 83 writeValue( DateUtils.formatDateTime(date) ); 84 } 85 86 /*** 87 * @see org.codehaus.xfire.java.message.MessageWriter#writeValueAsDate(java.util.Date) 88 */ 89 public void writeValueAsDate(Date date) 90 { 91 DateUtils.formatDate( calendar.getTime() ); 92 } 93 94 /*** 95 * @see org.codehaus.xfire.java.message.MessageWriter#getElement() 96 */ 97 public Element getElement() 98 { 99 return element; 100 } 101 102 /*** 103 * @see org.codehaus.xfire.java.message.MessageWriter#getWriters() 104 */ 105 public List getWriters() 106 { 107 return null; 108 } 109 110 /*** 111 * @see org.codehaus.xfire.java.message.MessageWriter#writeValueAsDouble(java.lang.Double) 112 */ 113 public void writeValueAsDouble(Double d) 114 { 115 writeValue( d.toString() ); 116 } 117 118 /*** 119 * @see org.codehaus.xfire.java.message.MessageWriter#writeValueAsLong(java.lang.Long) 120 */ 121 public void writeValueAsLong(Long l) 122 { 123 writeValue( l.toString() ); 124 } 125 126 /*** 127 * @see org.codehaus.xfire.java.message.MessageWriter#writeValueAsFloat(java.lang.Float) 128 */ 129 public void writeValueAsFloat(Float f) 130 { 131 writeValue( f.toString() ); 132 } 133 134 /*** 135 * @see org.codehaus.xfire.java.message.MessageWriter#writeValueAsBoolean(boolean) 136 */ 137 public void writeValueAsBoolean(boolean b) 138 { 139 writeValue( Boolean.toString(b) ); 140 } 141 142 }