Statistics
| Branch: | Revision:

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
}