1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.jclouds.savvis.vpdc.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.xml.SectionHandler;
30 import org.jclouds.savvis.vpdc.domain.NetworkConfigSection;
31 import org.jclouds.util.SaxUtils;
32 import org.xml.sax.Attributes;
33
34
35
36
37 public class NetworkConfigSectionHandler extends SectionHandler<NetworkConfigSection, NetworkConfigSection.Builder> {
38
39 @Inject
40 public NetworkConfigSectionHandler(Provider<NetworkConfigSection.Builder> builderProvider) {
41 super(builderProvider);
42 }
43
44 public void startElement(String uri, String localName, String qName, Attributes attrs) {
45 Map<String, String> attributes = SaxUtils.cleanseAttributes(attrs);
46 if (equalsOrSuffix(qName, "Section") && "vApp:NetworkConfigSectionType".equals(attributes.get("type"))) {
47 builder.network(attributes.get("Network"));
48 builder.netmask(attributes.get("Netmask"));
49 builder.gateway(attributes.get("Gateway"));
50 } else if (equalsOrSuffix(qName, "NatRule")) {
51 builder.internalToExternalNATRule(attributes.get("internalIP"), attributes.get("externalIP"));
52 }
53 }
54
55 @Override
56 public void endElement(String uri, String localName, String qName) {
57 if (equalsOrSuffix(qName, "FenceMode")) {
58 builder.fenceMode(currentOrNull(currentText));
59 } else if (equalsOrSuffix(qName, "Dhcp")) {
60 builder.dhcp(new Boolean(currentOrNull(currentText)));
61 }
62 super.endElement(uri, localName, qName);
63 }
64 }