1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.common.util.spring.convert.support;
17
18 import static org.kuali.common.util.Encodings.UTF8;
19 import static org.kuali.common.util.base.Exceptions.illegalArgument;
20 import static org.kuali.common.util.base.Precondition.checkNotBlank;
21
22 import java.io.ByteArrayOutputStream;
23 import java.io.IOException;
24 import java.util.Properties;
25
26 import org.springframework.core.convert.converter.Converter;
27
28 public final class PropertiesToXmlStringConverter implements Converter<Properties, String> {
29
30 public PropertiesToXmlStringConverter() {
31 this(UTF8);
32 }
33
34 public PropertiesToXmlStringConverter(String encoding) {
35 this.encoding = checkNotBlank(encoding, "encoding");
36 }
37
38 private final String encoding;
39
40 @Override
41 public String convert(Properties props) {
42 try {
43 ByteArrayOutputStream out = new ByteArrayOutputStream();
44 props.storeToXML(out, null, encoding);
45 return out.toString(encoding);
46 } catch (IOException e) {
47 throw illegalArgument(e, "unexpected io error converting properties object into an xml string - encoding=[%s]", encoding);
48 }
49 }
50
51 public String getEncoding() {
52 return encoding;
53 }
54 }