View Javadoc
1   package org.kuali.common.util.spring.format;
2   
3   import static org.kuali.common.util.base.Precondition.checkNotBlank;
4   
5   import java.util.Locale;
6   import java.util.Properties;
7   
8   import org.kuali.common.util.spring.convert.support.XmlStringToPropertiesConverter;
9   import org.kuali.common.util.spring.convert.support.PropertiesToXmlStringConverter;
10  import org.springframework.format.Formatter;
11  
12  public final class XmlPropertiesFormatter implements Formatter<Properties> {
13  
14  	public XmlPropertiesFormatter(String encoding, String emptyPropertiesToken) {
15  		this.encoding = checkNotBlank(encoding, "encoding");
16  		this.emptyPropertiesToken = checkNotBlank(emptyPropertiesToken, "emptyPropertiesToken");
17  		this.parser = new XmlStringToPropertiesConverter(encoding);
18  		this.printer = new PropertiesToXmlStringConverter(encoding);
19  	}
20  
21  	private final String encoding;
22  	private final String emptyPropertiesToken;
23  	private final XmlStringToPropertiesConverter parser;
24  	private final PropertiesToXmlStringConverter printer;
25  
26  	@Override
27  	public String print(Properties properties, Locale locale) {
28  		if (properties.isEmpty()) {
29  			return emptyPropertiesToken;
30  		} else {
31  			return printer.convert(properties);
32  		}
33  
34  	}
35  
36  	@Override
37  	public Properties parse(String string, Locale locale) {
38  		if (emptyPropertiesToken.equals(string)) {
39  			return new Properties();
40  		} else {
41  			return parser.convert(string);
42  		}
43  	}
44  
45  	public String getEncoding() {
46  		return encoding;
47  	}
48  
49  	public XmlStringToPropertiesConverter getParser() {
50  		return parser;
51  	}
52  
53  	public PropertiesToXmlStringConverter getPrinter() {
54  		return printer;
55  	}
56  
57  	public String getEmptyPropertiesToken() {
58  		return emptyPropertiesToken;
59  	}
60  
61  }