Statistics
| Branch: | Revision:

root / src / com / rackspace / cloud / servers / api / client / http / AuthXMLParser.java @ f3633a16

History | View | Annotate | Download (2.8 kB)

1
package com.rackspace.cloud.servers.api.client.http;
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.Container;
11

    
12
/**
13
 * 
14
 * @author Adam Menz
15
 * 
16
 */
17
public class AuthXMLParser extends DefaultHandler {
18

    
19
        private String token;
20
        private String serverURL;
21
        private String storageURL;
22
        private String cdnURL;
23
        private String curService;
24
        private StringBuffer currentData;
25

    
26
        public void startElement(String uri, String name, String qName,
27
                        Attributes atts) {
28
                
29
                currentData = new StringBuffer();
30
                if("service".equals(name)){
31
                        curService = atts.getValue("name");
32
                }
33
                
34
                if("endpoint".equals(name)){
35
                        if(curService.equals("cloudFilesCDN")){
36
                                cdnURL = atts.getValue("publicURL");
37
                        }
38
                        if(curService.equals("cloudFiles")){
39
                                storageURL = atts.getValue("publicURL");
40
                        }
41
                        if(curService.equals("cloudServers")){
42
                                serverURL = atts.getValue("publicURL");
43
                        }
44
                }
45
                
46
                if("token".equals(name)){
47
                        token = atts.getValue("id");
48
                }
49
        }
50

    
51
        public void endElement(String uri, String name, String qName) {
52

    
53
                String value = currentData.toString().trim();
54
                /*
55
                if ("account".equals(name)) {
56

57
                } else if ("container".equals(name)) {
58

59
                        if (containers == null) {
60
                                containers = new ArrayList<Container>();
61
                        }
62
                        containers.add(container);
63

64
                } else if ("name".equals(name)) {
65
                        container.setName(value);
66
                } else if ("count".equals(name)) {
67
                        container.setCount(Integer.parseInt(value));
68
                } else if ("bytes".equals(name)) {
69
                        container.setBytes(Long.parseLong(value));
70
                } else if ("cdn_enabled".equals(name)) {
71
                        container.setCdnEnabled("True".equals(value));
72
                } else if ("ttl".equals(name)) {
73
                        container.setTtl(Integer.parseInt(value));
74
                } else if ("cdn_url".equals(name)) {
75
                        container.setCdnUrl(value);
76
                } else if ("log_retention".equals(name)) {
77
                        container.setLogRetention("True".equals(value));
78
                }
79
                */
80
        }
81

    
82
        public void characters(char ch[], int start, int length) {
83

    
84
                Log.d("Rackspace-Cloud", "Characters:    \"");
85

    
86
                for (int i = start; i < start + length; i++) {
87
                        switch (ch[i]) {
88
                        case '\\':
89
                                Log.d("Rackspace-Cloud", "\\\\");
90
                                break;
91
                        case '"':
92
                                Log.d("Rackspace-Cloud", "\\\"");
93
                                break;
94
                        case '\n':
95
                                Log.d("Rackspace-Cloud", "\\n");
96
                                break;
97
                        case '\r':
98
                                Log.d("Rackspace-Cloud", "\\r");
99
                                break;
100
                        case '\t':
101
                                Log.d("Rackspace-Cloud", "\\t");
102
                                break;
103
                        default:
104
                                Log.d("Rackspace-Cloud", String.valueOf(ch[i]));
105
                                break;
106
                        }
107
                }
108
                Log.d("Rackspace-Cloud", "\"\n");
109

    
110
                for (int i = start; i < (start + length); i++) {
111
                        currentData.append(ch[i]);
112
                }
113
        }
114
        
115
        public String getToken(){
116
                return token;
117
        }
118
        
119
        public String getServerURL(){
120
                return serverURL;
121
        }
122
        
123
        public String getStorageURL(){
124
                return storageURL;
125
        }
126
        
127
        public String getCdnURL(){
128
                return cdnURL;
129
        }
130

    
131

    
132
}