Statistics
| Branch: | Revision:

root / src / com / rackspace / cloud / files / api / client / parsers / ContainerXMLParser.java @ 240418be

History | View | Annotate | Download (2.5 kB)

1
package com.rackspace.cloud.files.api.client.parsers;
2

    
3
import java.util.ArrayList;
4

    
5
import org.xml.sax.Attributes;
6
import org.xml.sax.helpers.DefaultHandler;
7

    
8
import com.rackspace.cloud.files.api.client.Container;
9

    
10
/**
11
 * 
12
 * @author Phillip Toohill
13
 * 
14
 */
15
public class ContainerXMLParser extends DefaultHandler {
16

    
17
        private Container container;
18
        private ArrayList<Container> containers;
19
        private StringBuffer currentData;
20

    
21
        public void startElement(String uri, String name, String qName,
22
                        Attributes atts) {
23

    
24
                currentData = new StringBuffer();
25
                if ("account".equals(name)) {
26
                        containers = new ArrayList<Container>();
27
                } else if ("container".equals(name)) {
28
                        container = new Container();
29
                }
30
        }
31

    
32
        public void endElement(String uri, String name, String qName) {
33

    
34
                String value = currentData.toString().trim();
35

    
36
                if ("account".equals(name)) {
37

    
38
                } else if ("container".equals(name)) {
39

    
40
                        if (containers == null) {
41
                                containers = new ArrayList<Container>();
42
                        }
43
                        containers.add(container);
44

    
45
                } else if ("name".equals(name)) {
46
                        container.setName(value);
47
                } else if ("count".equals(name)) {
48
                        container.setCount(Integer.parseInt(value));
49
                } else if ("bytes".equals(name)) {
50
                        container.setBytes(Integer.parseInt(value));
51
                } else if ("cdn_enabled".equals(name)) {
52
                        container.setCdnEnabled("True".equals(value));
53
                } else if ("ttl".equals(name)) {
54
                        container.setTtl(Integer.parseInt(value));
55
                } else if ("cdn_url".equals(name)) {
56
                        container.setCdnUrl(value);
57
                } else if ("log_retention".equals(name)) {
58
                        container.setLogRetention("True".equals(value));
59
                }
60

    
61
        }
62

    
63
        public void characters(char ch[], int start, int length) {
64

    
65
                System.out.print("Characters:    \"");
66

    
67
                for (int i = start; i < start + length; i++) {
68
                        switch (ch[i]) {
69
                        case '\\':
70
                                System.out.print("\\\\");
71
                                break;
72
                        case '"':
73
                                System.out.print("\\\"");
74
                                break;
75
                        case '\n':
76
                                System.out.print("\\n");
77
                                break;
78
                        case '\r':
79
                                System.out.print("\\r");
80
                                break;
81
                        case '\t':
82
                                System.out.print("\\t");
83
                                break;
84
                        default:
85
                                System.out.print(ch[i]);
86
                                break;
87
                        }
88
                }
89

    
90
                for (int i = start; i < (start + length); i++) {
91
                        currentData.append(ch[i]);
92
                }
93
        }
94

    
95
        public Container getContainer() {
96
                return container;
97
        }
98

    
99
        public void setContainer(Container container) {
100
                this.container = container;
101
        }
102

    
103
        /**
104
         * @return the files
105
         */
106
        public ArrayList<Container> getContainers() {
107
                return containers;
108
        }
109

    
110
        /**
111
         * @param containers
112
         *            the servers to set
113
         */
114
        public void setContainers(ArrayList<Container> containers) {
115
                this.containers = containers;
116
        }
117

    
118
}