1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.springframework.roo.addon.surf.util;
20
21 import java.util.List;
22 import java.util.logging.Logger;
23
24 import org.springframework.roo.support.util.XmlUtils;
25 import org.w3c.dom.Document;
26 import org.w3c.dom.Element;
27
28
29
30
31 public class ComponentConfigUtils {
32 static Logger logger = Logger.getLogger(ComponentConfigUtils.class.getName());
33
34 public static String componentsToString (Document doc){
35 List<Element> components = getComponentsElems(doc);
36 if (components == null) {
37 return "";
38 } else {
39 StringBuffer sb = new StringBuffer();
40 for (Element component : components) {
41 sb.append(componentToString(component));
42 sb.append("\n");
43 }
44 return sb.toString().trim();
45 }
46
47 }
48 public static String componentToString(Element componentElem) {
49 StringBuffer sb = new StringBuffer();
50 Element regionIdElem = XmlUtils.findFirstElement("region-id", componentElem);
51 if (regionIdElem != null){
52 sb.append("Region: ");
53 sb.append(regionIdElem.getTextContent());
54 }
55 Element urlElem = XmlUtils.findFirstElement("url", componentElem);
56 if (urlElem != null){
57 sb.append(" Url: ");
58 sb.append(urlElem.getTextContent());
59 }
60
61
62 return sb.toString();
63 }
64
65 public static Element getComponentElem(Document doc) {
66 Element rootElem = (Element) doc.getFirstChild();
67 if (rootElem.getTagName().equals("component")){
68 return rootElem;
69 } else {
70 return null;
71 }
72 }
73
74 public static List<Element> getComponentsElems(Document doc) {
75 Element rootElem = (Element) doc.getFirstChild();
76 Element componentsElem = XmlUtils.findFirstElementByName("components", rootElem);
77 if ( componentsElem == null) {
78 return null;
79 } else {
80 return XmlUtils.findElements("component", componentsElem);
81 }
82 }
83
84 public static Element updateComponentConfig(Document doc,String regionId, String url) {
85 Element rootElem = (Element) doc.getFirstChild();
86 Element componentsElem = XmlUtils.findFirstElementByName("components", rootElem);
87 if ( componentsElem == null ){
88 componentsElem = doc.createElement("components");
89 rootElem.appendChild(componentsElem);
90 }
91 Element componentElem = XmlUtils.findFirstElement("component[region-id='"+regionId+"']", componentsElem);
92 if ( componentElem == null ) {
93 componentElem = doc.createElement("component");
94 componentsElem.appendChild(componentElem);
95 Element regionIdElem = doc.createElement("region-id");
96 regionIdElem.setTextContent(regionId);
97 Element urlElem = doc.createElement("url");
98 urlElem.setTextContent(url);
99 componentElem.appendChild(regionIdElem);
100 componentElem.appendChild(urlElem);
101 } else {
102 XmlUtils.findFirstElement("url", componentElem).setTextContent(url);
103 }
104 return componentElem;
105 }
106
107 public static boolean removeComponentConfig(Document doc,String regionId) {
108 Element rootElem = (Element) doc.getFirstChild();
109 Element componentElem = XmlUtils.findFirstElement("components/component[region-id='"+regionId+"']", rootElem);
110 if ( componentElem == null ) {
111 return false;
112 } else {
113 Element componentsElem = XmlUtils.findFirstElementByName("components", rootElem);
114 componentsElem.removeChild(componentElem);
115 return true;
116 }
117 }
118
119 public static String getComponentConfigByRegionId(Document doc,String regionId) {
120 Element rootElem = (Element) doc.getFirstChild();
121 Element componentElem = XmlUtils.findFirstElement("components/component[region-id='"+regionId+"']", rootElem);
122 if ( componentElem == null ) {
123 return null;
124 } else {
125 return XmlUtils.findFirstElement("url", componentElem).getTextContent();
126 }
127 }
128
129 public static String getComponentConfigByUrl(Document doc,String url) {
130 Element rootElem = (Element) doc.getFirstChild();
131 Element componentElem = XmlUtils.findFirstElement("components/component[url='"+url+"']", rootElem);
132 if ( componentElem == null ) {
133 return null;
134 } else {
135 return XmlUtils.findFirstElement("region-id", componentElem).getTextContent();
136 }
137 }
138
139
140 }