1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.jclouds.cim.xml;
20
21 import static org.jclouds.util.SaxUtils.currentOrNull;
22 import static org.jclouds.util.SaxUtils.equalsOrSuffix;
23
24 import org.jclouds.cim.ResourceAllocationSettingData;
25 import org.jclouds.cim.ResourceAllocationSettingData.ConsumerVisibility;
26 import org.jclouds.cim.ResourceAllocationSettingData.MappingBehavior;
27 import org.jclouds.cim.ResourceAllocationSettingData.ResourceType;
28 import org.jclouds.http.functions.ParseSax;
29 import org.xml.sax.Attributes;
30
31
32
33
34 public class ResourceAllocationSettingDataHandler extends ParseSax.HandlerWithResult<ResourceAllocationSettingData> {
35 protected StringBuilder currentText = new StringBuilder();
36
37 protected ResourceAllocationSettingData.Builder builder = ResourceAllocationSettingData.builder();
38
39 public ResourceAllocationSettingData getResult() {
40 try {
41 return builder.build();
42 } finally {
43 builder = ResourceAllocationSettingData.builder();
44 }
45 }
46
47 @Override
48 public void startElement(String uri, String localName, String qName, Attributes attrs) {
49 }
50
51 @Override
52 public void endElement(String uri, String localName, String qName) {
53 String current = currentOrNull(currentText);
54 if (current != null) {
55 if (equalsOrSuffix(qName, "ElementName")) {
56 builder.elementName(current);
57 } else if (equalsOrSuffix(qName, "InstanceID")) {
58 builder.instanceID(current);
59 } else if (equalsOrSuffix(qName, "Caption")) {
60 builder.caption(current);
61 } else if (equalsOrSuffix(qName, "Description")) {
62 builder.description(current);
63 } else if (equalsOrSuffix(qName, "Address")) {
64 builder.address(current);
65 } else if (equalsOrSuffix(qName, "AddressOnParent")) {
66 builder.addressOnParent(current);
67 } else if (equalsOrSuffix(qName, "AllocationUnits")) {
68 builder.allocationUnits(current);
69 } else if (equalsOrSuffix(qName, "AutomaticAllocation")) {
70 builder.automaticAllocation(new Boolean(current));
71 } else if (equalsOrSuffix(qName, "AutomaticDeallocation")) {
72 builder.automaticDeallocation(new Boolean(current));
73 } else if (equalsOrSuffix(qName, "ConsumerVisibility")) {
74 builder.consumerVisibility(ConsumerVisibility.fromValue(current));
75 } else if (equalsOrSuffix(qName, "Limit")) {
76 builder.limit(new Long(current));
77 } else if (equalsOrSuffix(qName, "MappingBehavior")) {
78 builder.mappingBehavior(MappingBehavior.fromValue(current));
79 } else if (equalsOrSuffix(qName, "OtherResourceType")) {
80 builder.otherResourceType(current);
81 } else if (equalsOrSuffix(qName, "Parent")) {
82 builder.parent(current);
83 } else if (equalsOrSuffix(qName, "PoolID")) {
84 builder.poolID(current);
85 } else if (equalsOrSuffix(qName, "Reservation")) {
86 builder.reservation(new Long(current));
87 } else if (equalsOrSuffix(qName, "ResourceSubType")) {
88 builder.resourceSubType(current);
89 } else if (equalsOrSuffix(qName, "ResourceType")) {
90 builder.resourceType(ResourceType.fromValue(current));
91 } else if (equalsOrSuffix(qName, "VirtualQuantity")) {
92 builder.virtualQuantity(new Long(current));
93 } else if (equalsOrSuffix(qName, "VirtualQuantityUnits")) {
94 builder.virtualQuantityUnits(current);
95 } else if (equalsOrSuffix(qName, "Weight")) {
96 builder.weight(new Integer(current));
97 } else if (equalsOrSuffix(qName, "Connection")) {
98 builder.connection(current);
99 } else if (equalsOrSuffix(qName, "HostResource")) {
100 builder.hostResource(current);
101 }
102 }
103 currentText = new StringBuilder();
104 }
105
106 public void characters(char ch[], int start, int length) {
107 currentText.append(ch, start, length);
108 }
109
110 }