1 package com.atlassian.config.xml;
2
3 import com.atlassian.config.ConfigurationException;
4 import org.dom4j.Element;
5
6 import java.util.ArrayList;
7 import java.util.Iterator;
8 import java.util.List;
9
10 public class Dom4jXmlListConfigElement extends Dom4jXmlStringConfigElement
11 {
12 public Dom4jXmlListConfigElement(String name, Element context, AbstractDom4jXmlConfigurationPersister config)
13 {
14 super(name, context, config);
15 }
16
17 public Class getObjectClass()
18 {
19 return List.class;
20 }
21
22 public void saveConfig(Object object) throws ConfigurationException
23 {
24 List list = (List) object;
25 Element listElement = getOrMakeElement(getPropertyName());
26 listElement.clearContent();
27
28 Element itemElement;
29 String item;
30 for (Iterator iterator = list.iterator(); iterator.hasNext();)
31 {
32 item = (String) iterator.next();
33 itemElement = listElement.addElement("item");
34
35 if (useCData)
36 {
37 itemElement.addCDATA(item);
38 }
39 else
40 {
41 itemElement.setText(item);
42 }
43 }
44 }
45
46 public Object loadConfig() throws ConfigurationException
47 {
48 Element element = (Element) context.selectSingleNode(getPropertyName());
49 String item;
50 List list = new ArrayList();
51
52 for (Iterator iterator = element.elementIterator(); iterator.hasNext();)
53 {
54 item = (String) getConfiguration().getConfigElement(String.class, "item", (Element) iterator.next());
55 list.add(item);
56 }
57 return list;
58 }
59 }