1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.fourthline.cling.model.types;
17
18 import org.seamless.util.io.Base64Coder;
19
20
21
22
23 public class Base64Datatype extends AbstractDatatype<byte[]> {
24
25 public Base64Datatype() {
26 }
27
28 public Class<byte[]> getValueType() {
29 return byte[].class;
30 }
31
32 public byte[] valueOf(String s) throws InvalidValueException {
33 if (s.equals("")) return null;
34 try {
35 return Base64Coder.decode(s);
36 } catch (Exception ex) {
37 throw new InvalidValueException(ex.getMessage(), ex);
38 }
39 }
40
41 @Override
42 public String getString(byte[] value) throws InvalidValueException {
43 if (value == null) return "";
44 try {
45 return new String(Base64Coder.encode(value), "UTF-8");
46 } catch (Exception ex) {
47 throw new InvalidValueException(ex.getMessage(), ex);
48 }
49 }
50
51 }