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.cleanseAttributes;
22 import static org.jclouds.util.SaxUtils.currentOrNull;
23 import static org.jclouds.util.SaxUtils.equalsOrSuffix;
24
25 import java.util.Map;
26
27 import javax.inject.Inject;
28 import javax.inject.Provider;
29
30 import org.jclouds.ovf.OperatingSystemSection;
31 import org.xml.sax.Attributes;
32
33
34
35
36 public class OperatingSystemSectionHandler extends
37 SectionHandler<OperatingSystemSection, OperatingSystemSection.Builder> {
38 @Inject
39 public OperatingSystemSectionHandler(Provider<OperatingSystemSection.Builder> builderProvider) {
40 super(builderProvider);
41 }
42
43 @Override
44 public void startElement(String uri, String localName, String qName, Attributes attrs) {
45 Map<String, String> attributes = cleanseAttributes(attrs);
46 if (equalsOrSuffix(qName, "OperatingSystemSection")) {
47 if (attributes.containsKey("id"))
48 builder.id(Integer.parseInt(attributes.get("id")));
49 }
50 }
51
52 @Override
53 public void endElement(String uri, String localName, String qName) {
54 if (equalsOrSuffix(qName, "Info")) {
55 builder.info(currentOrNull(currentText));
56 } else if (equalsOrSuffix(qName, "Description")) {
57 builder.description(currentOrNull(currentText));
58 }
59 super.endElement(uri, localName, qName);
60 }
61 }