1 package org.codehaus.xfire.aegis.type.basic;
2
3 import org.codehaus.xfire.MessageContext;
4 import org.codehaus.xfire.aegis.MessageReader;
5 import org.codehaus.xfire.aegis.MessageWriter;
6 import org.codehaus.xfire.aegis.type.Type;
7 import org.codehaus.xfire.fault.XFireFault;
8 import org.codehaus.xfire.util.Base64;
9
10 /***
11 * Converts back and forth to byte[] objects.
12 *
13 * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
14 */
15 public class Base64Type
16 extends Type
17 {
18 public Object readObject(MessageReader reader, MessageContext context)
19 throws XFireFault
20 {
21 return Base64.decode(reader.getValue());
22 }
23
24 public void writeObject(Object object, MessageWriter writer, MessageContext context)
25 throws XFireFault
26 {
27 byte[] data = (byte[]) object;
28
29 writer.writeValue( Base64.encode(data, 0, data.length) );
30 }
31 }