root / src / com / rackspace / cloud / loadbalancer / api / parsers / LoadBalancersXmlParser.java @ 403bb53b
History | View | Annotate | Download (5.6 kB)
1 |
/**
|
---|---|
2 |
*
|
3 |
*/
|
4 |
package com.rackspace.cloud.loadbalancer.api.parsers; |
5 |
|
6 |
import java.util.ArrayList; |
7 |
import org.xml.sax.Attributes; |
8 |
import org.xml.sax.helpers.DefaultHandler; |
9 |
import android.util.Log; |
10 |
|
11 |
import com.rackspace.cloud.loadbalancer.api.client.ConnectionThrottle; |
12 |
import com.rackspace.cloud.loadbalancer.api.client.LoadBalancer; |
13 |
import com.rackspace.cloud.loadbalancer.api.client.Node; |
14 |
import com.rackspace.cloud.loadbalancer.api.client.VirtualIp; |
15 |
|
16 |
public class LoadBalancersXmlParser extends DefaultHandler { |
17 |
|
18 |
private LoadBalancer loadBalancer;
|
19 |
private ArrayList<LoadBalancer> loadBalancers; |
20 |
private ConnectionThrottle connectionThrottle;
|
21 |
private VirtualIp virtualIp;
|
22 |
private ArrayList<VirtualIp> virtualIps; |
23 |
private Node node;
|
24 |
private ArrayList<Node> nodes; |
25 |
private StringBuffer currentData; |
26 |
|
27 |
public void startDocument() { |
28 |
} |
29 |
|
30 |
public void endDocument() { |
31 |
} |
32 |
|
33 |
public void startElement(String uri, String name, String qName, |
34 |
Attributes atts) {
|
35 |
|
36 |
currentData = new StringBuffer(); |
37 |
if ("loadBalancers".equals(name)) { |
38 |
loadBalancers = new ArrayList<LoadBalancer>(); |
39 |
} else if ("loadBalancer".equals(name)) { |
40 |
loadBalancer = new LoadBalancer();
|
41 |
loadBalancer.setId(atts.getValue("id"));
|
42 |
loadBalancer.setName(atts.getValue("name"));
|
43 |
loadBalancer.setProtocol(atts.getValue("protocol"));
|
44 |
loadBalancer.setPort(atts.getValue("port"));
|
45 |
loadBalancer.setAlgorithm(atts.getValue("algorithm"));
|
46 |
loadBalancer.setStatus(atts.getValue("status"));
|
47 |
} else if ("connectionLogging".equalsIgnoreCase(name)) { |
48 |
loadBalancer.setIsConnectionLoggingEnabled(atts.getValue("enabled"));
|
49 |
} else if ("created".equalsIgnoreCase(name)) { |
50 |
loadBalancer.setCreated(atts.getValue("time"));
|
51 |
} else if ("updated".equalsIgnoreCase(name)) { |
52 |
loadBalancer.setCreated(atts.getValue("time"));
|
53 |
} else if ("sessionPersistence".equalsIgnoreCase(name)) { |
54 |
loadBalancer.setSessionPersistence(atts.getValue("sessionPersistence"));
|
55 |
} else if ("clusterName".equalsIgnoreCase(name)) { |
56 |
loadBalancer.setClusterName(atts.getValue("clusterName"));
|
57 |
} else if ("connectionThrottle".equalsIgnoreCase(name)) { |
58 |
connectionThrottle = new ConnectionThrottle();
|
59 |
connectionThrottle.setMaxConnectionRate(atts.getValue("maxConnectionRate"));
|
60 |
connectionThrottle.setMinConnections(atts.getValue("minConnections"));
|
61 |
connectionThrottle.setMaxConnections(atts.getValue("maxConnections"));
|
62 |
connectionThrottle.setRateInterval(atts.getValue("rateInterval"));
|
63 |
loadBalancer.setConnectionThrottle(connectionThrottle); |
64 |
} else if ("virtualIps".equalsIgnoreCase(name)) { |
65 |
virtualIps = new ArrayList<VirtualIp>(); |
66 |
} else if ("virtualIp".equalsIgnoreCase(name)) { |
67 |
virtualIp = new VirtualIp();
|
68 |
virtualIp.setId(atts.getValue("id"));
|
69 |
virtualIp.setAddress(atts.getValue("address"));
|
70 |
virtualIp.setIpVersion(atts.getValue("ipVersion"));
|
71 |
virtualIp.setType(atts.getValue("type"));
|
72 |
virtualIp.setLoadBalancer(loadBalancer); |
73 |
} else if ("nodes".equalsIgnoreCase(name)) { |
74 |
nodes = new ArrayList<Node>(); |
75 |
} else if ("node".equalsIgnoreCase(name)) { |
76 |
node = new Node();
|
77 |
node.setId(atts.getValue("id"));
|
78 |
node.setAddress(atts.getValue("address"));
|
79 |
node.setPort(atts.getValue("port"));
|
80 |
node.setCondition(atts.getValue("condition"));
|
81 |
node.setStatus(atts.getValue("status"));
|
82 |
node.setWeight(atts.getValue("weight"));
|
83 |
} |
84 |
} |
85 |
|
86 |
public void endElement(String uri, String name, String qName) { |
87 |
if ("loadBalancers".equals(name)) { |
88 |
// Do nothing
|
89 |
} else if ("loadBalancer".equals(name)) { |
90 |
if (loadBalancers != null) { |
91 |
loadBalancers.add(loadBalancer); |
92 |
} |
93 |
} else if ("virtualIps".equalsIgnoreCase(name)) { |
94 |
loadBalancer.setVirtualIps(virtualIps); |
95 |
} else if ("virtualIp".equalsIgnoreCase(name)) { |
96 |
if (virtualIps != null) { |
97 |
virtualIps.add(virtualIp); |
98 |
} |
99 |
} else if ("nodes".equalsIgnoreCase(name)) { |
100 |
loadBalancer.setNodes(nodes); |
101 |
} else if ("node".equalsIgnoreCase(name)) { |
102 |
if (nodes != null) { |
103 |
nodes.add(node); |
104 |
} |
105 |
} |
106 |
} |
107 |
|
108 |
public void characters(char ch[], int start, int length) { |
109 |
Log.d("Rackspace-Cloud", "Characters: \""); |
110 |
for (int i = start; i < start + length; i++) { |
111 |
switch (ch[i]) {
|
112 |
case '\\': |
113 |
Log.d("Rackspace-Cloud", "\\\\"); |
114 |
break;
|
115 |
case '"': |
116 |
Log.d("Rackspace-Cloud", "\\\""); |
117 |
break;
|
118 |
case '\n': |
119 |
Log.d("Rackspace-Cloud", "\\n"); |
120 |
break;
|
121 |
case '\r': |
122 |
Log.d("Rackspace-Cloud", "\\r"); |
123 |
break;
|
124 |
case '\t': |
125 |
Log.d("Rackspace-Cloud", "\\t"); |
126 |
break;
|
127 |
default:
|
128 |
Log.d("Rackspace-Cloud", String.valueOf(ch[i])); |
129 |
break;
|
130 |
} |
131 |
} |
132 |
Log.d("Rackspace-Cloud", "\"\n"); |
133 |
|
134 |
for (int i = start; i < (start + length); i++) { |
135 |
currentData.append(ch[i]); |
136 |
} |
137 |
} |
138 |
|
139 |
public LoadBalancer getLoadBalancer() {
|
140 |
return loadBalancer;
|
141 |
} |
142 |
|
143 |
public void setLoadBalancer(LoadBalancer loadBalancer) { |
144 |
this.loadBalancer = loadBalancer;
|
145 |
} |
146 |
|
147 |
public ArrayList<LoadBalancer> getLoadBalancers() { |
148 |
return loadBalancers;
|
149 |
} |
150 |
|
151 |
public void setLoadBalancers(ArrayList<LoadBalancer> loadBalancers) { |
152 |
this.loadBalancers = loadBalancers;
|
153 |
} |
154 |
|
155 |
public VirtualIp getVirtualIp() {
|
156 |
return virtualIp;
|
157 |
} |
158 |
|
159 |
public void setVirtualIp(VirtualIp virtualIp) { |
160 |
this.virtualIp = virtualIp;
|
161 |
} |
162 |
|
163 |
public ArrayList<VirtualIp> getVirtualIps() { |
164 |
return virtualIps;
|
165 |
} |
166 |
|
167 |
public void setVirtualIps(ArrayList<VirtualIp> virtualIps) { |
168 |
this.virtualIps = virtualIps;
|
169 |
} |
170 |
|
171 |
public Node getNode() {
|
172 |
return node;
|
173 |
} |
174 |
|
175 |
public void setNode(Node node) { |
176 |
this.node = node;
|
177 |
} |
178 |
|
179 |
public ArrayList<Node> getNodes() { |
180 |
return nodes;
|
181 |
} |
182 |
|
183 |
public void setNodes(ArrayList<Node> nodes) { |
184 |
this.nodes = nodes;
|
185 |
} |
186 |
|
187 |
public StringBuffer getCurrentData() { |
188 |
return currentData;
|
189 |
} |
190 |
|
191 |
public void setCurrentData(StringBuffer currentData) { |
192 |
this.currentData = currentData;
|
193 |
} |
194 |
} |