blob: 65f5f74e1b01eef895b446166b18c1913b42dd1e [file] [log] [blame]
Stuart McCullochf3173222012-06-07 21:57:32 +00001package aQute.lib.json;
2
3import java.io.*;
4import java.lang.reflect.*;
5import java.util.*;
6
7import aQute.lib.base64.*;
8
9public class ByteArrayHandler extends Handler {
10
11 @Override void encode(Encoder app, Object object, Map<Object, Type> visited)
12 throws IOException, Exception {
13 StringHandler.string(app, Base64.encodeBase64((byte[]) object));
14 }
15
16 @Override Object decodeArray(Decoder r) throws Exception {
17 ByteArrayOutputStream out = new ByteArrayOutputStream();
18
19 ArrayList<Object> list = new ArrayList<Object>();
20 r.codec.parseArray(list, Byte.class, r);
21 for (Object b : list) {
22 out.write(((Byte) b).byteValue());
23 }
24 return out.toByteArray();
25 }
26
27 @Override Object decode(String s) throws Exception {
28 return Base64.decodeBase64(s);
29 }
30}