1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.jclouds.ovf.xml;
20
21 import static org.jclouds.util.SaxUtils.currentOrNull;
22 import static org.jclouds.util.SaxUtils.equalsOrSuffix;
23
24 import java.util.Map;
25
26 import javax.inject.Inject;
27 import javax.inject.Provider;
28
29 import org.jclouds.ovf.Network;
30 import org.jclouds.ovf.NetworkSection;
31 import org.jclouds.ovf.xml.SectionHandler;
32 import org.jclouds.util.SaxUtils;
33 import org.xml.sax.Attributes;
34
35
36
37
38 public class NetworkSectionHandler extends SectionHandler<NetworkSection, NetworkSection.Builder> {
39 protected Network.Builder networkBuilder = Network.builder();
40
41 @Inject
42 public NetworkSectionHandler(Provider<NetworkSection.Builder> builderProvider) {
43 super(builderProvider);
44 }
45
46 public void startElement(String uri, String localName, String qName, Attributes attrs) {
47 Map<String, String> attributes = SaxUtils.cleanseAttributes(attrs);
48 if (equalsOrSuffix(qName, "Network")) {
49 networkBuilder.name(attributes.get("name"));
50 }
51 }
52
53 @Override
54 public void endElement(String uri, String localName, String qName) {
55 if (equalsOrSuffix(qName, "Info")) {
56 builder.info(currentOrNull(currentText));
57 } else if (equalsOrSuffix(qName, "Description")) {
58 networkBuilder.description(currentOrNull(currentText));
59 } else if (equalsOrSuffix(qName, "Network")) {
60 try {
61 builder.network(networkBuilder.build());
62 } finally {
63 networkBuilder = Network.builder();
64 }
65 }
66 super.endElement(uri, localName, qName);
67 }
68 }