Statistics
| Branch: | Revision:

root / src / com / rackspace / cloud / files / api / client / parsers / ObjectVersionXMLParser.java @ 94abc2c7

History | View | Annotate | Download (1.9 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 android.util.Log;
9

    
10
import com.rackspace.cloud.files.api.client.ObjectVersion;
11

    
12
public class ObjectVersionXMLParser extends DefaultHandler {
13

    
14
        
15
        private ArrayList<ObjectVersion> containers;
16
        ObjectVersion version;
17

    
18
        private StringBuffer currentData;
19

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

    
23
                currentData = new StringBuffer();
24
                if("object".equals(name)){
25
                        containers = new ArrayList<ObjectVersion>();
26
                }
27
                if ("version".equals(name)) {
28
                        version = new ObjectVersion();
29
                        version.setTimestamp(atts.getValue("timestamp"));
30
                }
31
        }
32

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

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

    
37
                if ("object".equals(name)) {
38

    
39
                } else if ("version".equals(name)) {
40
                        version.setVersion(Integer.parseInt(value));
41
                        Log.d(getClass().getName(),"parsed:"+version.getVersion()+" "+version.getTimestamp());
42
                        containers.add(version);
43
                }
44

    
45
        }
46

    
47
        public void characters(char ch[], int start, int length) {
48

    
49
                // Log.d("Rackspace-Cloud", "Characters:    \"");
50

    
51
                for (int i = start; i < start + length; i++) {
52
                        switch (ch[i]) {
53
                        case '\\':
54
                                // Log.d("Rackspace-Cloud", "\\\\");
55
                                break;
56
                        case '"':
57
                                // Log.d("Rackspace-Cloud", "\\\"");
58
                                break;
59
                        case '\n':
60
                                // Log.d("Rackspace-Cloud", "\\n");
61
                                break;
62
                        case '\r':
63
                                // Log.d("Rackspace-Cloud", "\\r");
64
                                break;
65
                        case '\t':
66
                                // Log.d("Rackspace-Cloud", "\\t");
67
                                break;
68
                        default:
69
                                // Log.d("Rackspace-Cloud", String.valueOf(ch[i]));
70
                                break;
71
                        }
72
                }
73
                // Log.d("Rackspace-Cloud", "\"\n");
74

    
75
                for (int i = start; i < (start + length); i++) {
76
                        currentData.append(ch[i]);
77
                }
78
        }
79

    
80
        
81
        /**
82
         * @return the files
83
         */
84
        public ArrayList<ObjectVersion> getContainers() {
85
                return containers;
86
        }
87

    
88
}