Statistics
| Branch: | Revision:

root / src / com / rackspace / cloud / loadbalancer / api / parsers / LoadBalancersXmlParser.java @ 23bc5e75

History | View | Annotate | Download (5.5 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
                } else if ("nodes".equalsIgnoreCase(name)) {
73
                        nodes = new ArrayList<Node>();
74
                } else if ("node".equalsIgnoreCase(name)) {
75
                        node = new Node();
76
                        node.setId(atts.getValue("id"));
77
                        node.setAddress(atts.getValue("address"));
78
                        node.setPort(atts.getValue("port"));
79
                        node.setCondition(atts.getValue("condition"));
80
                        node.setStatus(atts.getValue("status"));
81
                } 
82
        }
83

    
84
        public void endElement(String uri, String name, String qName) {
85
                if ("loadBalancers".equals(name)) {
86
                        // Do nothing
87
                } else if ("loadBalancer".equals(name)) {
88
                        if (loadBalancers != null) {
89
                                loadBalancers.add(loadBalancer);
90
                        }
91
                }  else if ("virtualIps".equalsIgnoreCase(name)) {
92
                        loadBalancer.setVirtualIps(virtualIps);
93
                } else if ("virtualIp".equalsIgnoreCase(name)) {
94
                        if (virtualIps != null) {
95
                                virtualIps.add(virtualIp);
96
                        }
97
                } else if ("nodes".equalsIgnoreCase(name)) {
98
                        loadBalancer.setNodes(nodes);
99
                } else if ("node".equalsIgnoreCase(name)) {
100
                        if (nodes != null) {
101
                                nodes.add(node);
102
                        }
103
                }
104
        }
105

    
106
        public void characters(char ch[], int start, int length) {
107
                Log.d("Rackspace-Cloud", "Characters:    \"");
108
                for (int i = start; i < start + length; i++) {
109
                        switch (ch[i]) {
110
                        case '\\':
111
                                Log.d("Rackspace-Cloud", "\\\\");
112
                                break;
113
                        case '"':
114
                                Log.d("Rackspace-Cloud", "\\\"");
115
                                break;
116
                        case '\n':
117
                                Log.d("Rackspace-Cloud", "\\n");
118
                                break;
119
                        case '\r':
120
                                Log.d("Rackspace-Cloud", "\\r");
121
                                break;
122
                        case '\t':
123
                                Log.d("Rackspace-Cloud", "\\t");
124
                                break;
125
                        default:
126
                                Log.d("Rackspace-Cloud", String.valueOf(ch[i]));
127
                                break;
128
                        }
129
                }
130
                Log.d("Rackspace-Cloud", "\"\n");
131

    
132
                for (int i = start; i < (start + length); i++) {
133
                        currentData.append(ch[i]);
134
                }
135
        }
136

    
137
        public LoadBalancer getLoadBalancer() {
138
                return loadBalancer;
139
        }
140

    
141
        public void setLoadBalancer(LoadBalancer loadBalancer) {
142
                this.loadBalancer = loadBalancer;
143
        }
144

    
145
        public ArrayList<LoadBalancer> getLoadBalancers() {
146
                return loadBalancers;
147
        }
148

    
149
        public void setLoadBalancers(ArrayList<LoadBalancer> loadBalancers) {
150
                this.loadBalancers = loadBalancers;
151
        }
152

    
153
        public VirtualIp getVirtualIp() {
154
                return virtualIp;
155
        }
156

    
157
        public void setVirtualIp(VirtualIp virtualIp) {
158
                this.virtualIp = virtualIp;
159
        }
160

    
161
        public ArrayList<VirtualIp> getVirtualIps() {
162
                return virtualIps;
163
        }
164

    
165
        public void setVirtualIps(ArrayList<VirtualIp> virtualIps) {
166
                this.virtualIps = virtualIps;
167
        }
168

    
169
        public Node getNode() {
170
                return node;
171
        }
172

    
173
        public void setNode(Node node) {
174
                this.node = node;
175
        }
176

    
177
        public ArrayList<Node> getNodes() {
178
                return nodes;
179
        }
180

    
181
        public void setNodes(ArrayList<Node> nodes) {
182
                this.nodes = nodes;
183
        }
184

    
185
        public StringBuffer getCurrentData() {
186
                return currentData;
187
        }
188

    
189
        public void setCurrentData(StringBuffer currentData) {
190
                this.currentData = currentData;
191
        }
192
}