root / src / com / rackspace / cloud / servers / api / client / parsers / ServersXMLParser.java @ 35e7942d
History | View | Annotate | Download (5 kB)
1 |
/**
|
---|---|
2 |
*
|
3 |
*/
|
4 |
package com.rackspace.cloud.servers.api.client.parsers; |
5 |
|
6 |
import java.util.ArrayList; |
7 |
|
8 |
import org.xml.sax.Attributes; |
9 |
import org.xml.sax.helpers.DefaultHandler; |
10 |
|
11 |
import com.rackspace.cloud.servers.api.client.Server; |
12 |
|
13 |
|
14 |
/**
|
15 |
* @author mike
|
16 |
*
|
17 |
*/
|
18 |
public class ServersXMLParser extends DefaultHandler { |
19 |
|
20 |
private Server server;
|
21 |
private ArrayList<Server> servers; |
22 |
private ArrayList<String> publicAddresses; |
23 |
private ArrayList<String> privateAddresses; |
24 |
private boolean parsingPublicAddresses; |
25 |
private StringBuffer currentData; |
26 |
|
27 |
public void startDocument() { |
28 |
System.out.println("Start document"); |
29 |
} |
30 |
|
31 |
public void endDocument() { |
32 |
System.out.println("End document"); |
33 |
} |
34 |
|
35 |
public void startElement(String uri, String name, String qName, Attributes atts) { |
36 |
|
37 |
if ("".equals(uri)) { |
38 |
System.out.println("Start element: " + qName); |
39 |
} else {
|
40 |
System.out.println("Start element: {" + uri + "}" + name); |
41 |
} |
42 |
|
43 |
currentData = new StringBuffer(); |
44 |
if ("servers".equals(name)) { |
45 |
servers = new ArrayList<Server>(); |
46 |
} else if ("server".equals(name)) { |
47 |
server = new Server();
|
48 |
server.setStatus(atts.getValue("status"));
|
49 |
server.setProgress(atts.getValue("progress"));
|
50 |
server.setHostId(atts.getValue("hostId"));
|
51 |
server.setFlavorId(atts.getValue("flavorId"));
|
52 |
server.setImageId(atts.getValue("imageId"));
|
53 |
server.setId(atts.getValue("id"));
|
54 |
server.setName(atts.getValue("name"));
|
55 |
} else if ("addresses".equals(name)) { |
56 |
//addresses = new ArrayList<String>();
|
57 |
} else if ("public".equals(name)) { |
58 |
parsingPublicAddresses = true;
|
59 |
publicAddresses = new ArrayList<String>(); |
60 |
} else if ("private".equals(name)) { |
61 |
parsingPublicAddresses = false;
|
62 |
privateAddresses = new ArrayList<String>(); |
63 |
} else if ("ip".equals(name)) { |
64 |
String ipAddress = atts.getValue("addr"); |
65 |
if (parsingPublicAddresses) {
|
66 |
publicAddresses.add(ipAddress); |
67 |
} else {
|
68 |
privateAddresses.add(ipAddress); |
69 |
} |
70 |
} |
71 |
} |
72 |
|
73 |
public void endElement(String uri, String name, String qName) { |
74 |
if ("".equals(uri)) { |
75 |
System.out.println("End element: " + qName); |
76 |
} else {
|
77 |
System.out.println("End element: {" + uri + "}" + name); |
78 |
} |
79 |
|
80 |
if ("servers".equals(name)) { |
81 |
|
82 |
} else if ("server".equals(name)) { |
83 |
if (servers != null) { |
84 |
servers.add(server); |
85 |
} |
86 |
} else if ("addresses".equals(name)) { |
87 |
|
88 |
String[] privateIpAddresses = new String[privateAddresses.size()]; |
89 |
String[] publicIpAddresses = new String[publicAddresses.size()]; |
90 |
|
91 |
for (int i = 0; i < privateAddresses.size(); i++) { |
92 |
privateIpAddresses[i] = privateAddresses.get(i); |
93 |
} |
94 |
for (int i = 0; i < publicAddresses.size(); i++) { |
95 |
publicIpAddresses[i] = publicAddresses.get(i); |
96 |
} |
97 |
|
98 |
server.setPublicIpAddresses(publicIpAddresses); |
99 |
server.setPrivateIpAddresses(privateIpAddresses); |
100 |
|
101 |
/*
|
102 |
} else if ("id".equals(name)) {
|
103 |
slice.setId(currentData.toString());
|
104 |
} else if ("name".equals(name)) {
|
105 |
slice.setName(currentData.toString());
|
106 |
} else if ("flavor-id".equals(name)) {
|
107 |
slice.setFlavorId(currentData.toString());
|
108 |
} else if ("flavor-name".equals(name)) {
|
109 |
slice.setFlavorName(currentData.toString());
|
110 |
} else if ("image-id".equals(name)) {
|
111 |
slice.setImageId(currentData.toString());
|
112 |
} else if ("image-name".equals(name)) {
|
113 |
slice.setImageName(currentData.toString());
|
114 |
} else if ("backup-id".equals(name)) {
|
115 |
slice.setBackupId(currentData.toString());
|
116 |
} else if ("status".equals(currentData.toString())) {
|
117 |
slice.setStatus(currentData.toString());
|
118 |
} else if ("progress".equals(currentData.toString())) {
|
119 |
slice.setProgress(currentData.toString());
|
120 |
} else if ("bw-in".equals(name)) {
|
121 |
slice.setBwIn(currentData.toString());
|
122 |
} else if ("bw-out".equals(name)) {
|
123 |
slice.setBwOut(currentData.toString());
|
124 |
} else if ("addresses".equals(name)) {
|
125 |
slice.setAddresses(addresses);
|
126 |
} else if ("address".equals(name)) {
|
127 |
addresses.add(currentData.toString());
|
128 |
} else if ("ip-address".equals(name)) {
|
129 |
slice.setIpAddress(currentData.toString());
|
130 |
} else if ("root-password".equals(name)) {
|
131 |
slice.setRootPassword(currentData.toString());
|
132 |
*/
|
133 |
} |
134 |
|
135 |
} |
136 |
|
137 |
public void characters(char ch[], int start, int length) { |
138 |
System.out.print("Characters: \""); |
139 |
for (int i = start; i < start + length; i++) { |
140 |
switch (ch[i]) {
|
141 |
case '\\': |
142 |
System.out.print("\\\\"); |
143 |
break;
|
144 |
case '"': |
145 |
System.out.print("\\\""); |
146 |
break;
|
147 |
case '\n': |
148 |
System.out.print("\\n"); |
149 |
break;
|
150 |
case '\r': |
151 |
System.out.print("\\r"); |
152 |
break;
|
153 |
case '\t': |
154 |
System.out.print("\\t"); |
155 |
break;
|
156 |
default:
|
157 |
System.out.print(ch[i]);
|
158 |
break;
|
159 |
} |
160 |
} |
161 |
System.out.print("\"\n"); |
162 |
|
163 |
|
164 |
for (int i = start; i < (start + length); i++) { |
165 |
currentData.append(ch[i]); |
166 |
} |
167 |
} |
168 |
|
169 |
public Server getServer() {
|
170 |
return server;
|
171 |
} |
172 |
|
173 |
public void setServer(Server server) { |
174 |
this.server = server;
|
175 |
} |
176 |
|
177 |
/**
|
178 |
* @return the servers
|
179 |
*/
|
180 |
public ArrayList<Server> getServers() { |
181 |
return servers;
|
182 |
} |
183 |
|
184 |
/**
|
185 |
* @param servers the servers to set
|
186 |
*/
|
187 |
public void setServers(ArrayList<Server> servers) { |
188 |
this.servers = servers;
|
189 |
} |
190 |
|
191 |
|
192 |
} |