1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.uruma.rcp.configuration.elements;
17
18 import java.io.Writer;
19 import java.util.ArrayList;
20 import java.util.Collections;
21 import java.util.List;
22
23 import org.seasar.uruma.rcp.configuration.ConfigurationElement;
24 import org.seasar.uruma.rcp.configuration.ConfigurationElementContainer;
25
26
27
28
29
30
31 public abstract class AbstractConfigurationElementContainer extends
32 AbstractConfigurationElement implements ConfigurationElementContainer {
33
34 private List<ConfigurationElement> children = new ArrayList<ConfigurationElement>();
35
36
37
38
39 public void addElement(final ConfigurationElement element) {
40 children.add(element);
41 }
42
43
44
45
46 public List<ConfigurationElement> getElements() {
47 return Collections.unmodifiableList(children);
48 }
49
50
51
52
53 @Override
54 public void writeConfiguration(final Writer writer) {
55 if (configurationWriter != null) {
56 configurationWriter.writeStartTag(this, writer, level);
57 }
58
59 for (ConfigurationElement element : children) {
60 element.setLevel(level + 1);
61 element.writeConfiguration(writer);
62 }
63
64 if (configurationWriter != null) {
65 configurationWriter.writeEndTag(this, writer, level);
66 }
67 }
68 }