Statistics
| Branch: | Revision:

root / src / com / rackspace / cloud / files / api / client / ContainerObjectManager.java @ 3d6041e8

History | View | Annotate | Download (4.8 kB)

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

    
3
import java.io.IOException;
4
import java.io.StringReader;
5
import java.util.ArrayList;
6

    
7
import javax.xml.parsers.FactoryConfigurationError;
8
import javax.xml.parsers.ParserConfigurationException;
9
import javax.xml.parsers.SAXParser;
10
import javax.xml.parsers.SAXParserFactory;
11

    
12
import org.apache.http.HttpResponse;
13
import org.apache.http.client.ClientProtocolException;
14
import org.apache.http.client.methods.HttpDelete;
15
import org.apache.http.client.methods.HttpGet;
16
import org.apache.http.impl.client.BasicResponseHandler;
17
import org.apache.http.impl.client.DefaultHttpClient;
18
import org.apache.http.protocol.RequestExpectContinue;
19
import org.xml.sax.InputSource;
20
import org.xml.sax.SAXException;
21
import org.xml.sax.XMLReader;
22

    
23
import android.util.Log;
24

    
25
import com.rackspace.cloud.files.api.client.parsers.ContainerObjectXMLparser;
26
import com.rackspace.cloud.servers.api.client.Account;
27
import com.rackspace.cloud.servers.api.client.CloudServersException;
28
import com.rackspace.cloud.servers.api.client.EntityManager;
29
import com.rackspace.cloud.servers.api.client.Server;
30
import com.rackspace.cloud.servers.api.client.parsers.CloudServersFaultXMLParser;
31
import com.rackspacecloud.android.ContainerObjectsActivity;
32

    
33
/** 
34
 * 
35
 * @author Phillip Toohill
36
 *
37
 */
38
public class ContainerObjectManager extends EntityManager {
39

    
40
        public String LOG = "ContainerObjectManager";
41
        public static final String storageToken = Account.getStorageToken();
42
        
43

    
44

    
45
        public ArrayList<ContainerObjects> createList(boolean detail, String passName) throws CloudServersException {
46
                
47
                
48
                DefaultHttpClient httpclient = new DefaultHttpClient();
49
                HttpGet get = new HttpGet(Account.getStorageUrl()+"/"+passName+"?format=xml");
50
                ArrayList<ContainerObjects> files = new ArrayList<ContainerObjects>();
51
                
52
                
53
                get.addHeader("Content-Type", "application/xml");
54
                get.addHeader("X-Storage-Token", storageToken);
55
                
56
                
57
                                
58
                try {                        
59
                        HttpResponse resp = httpclient.execute(get);                    
60
                    BasicResponseHandler responseHandler = new BasicResponseHandler();
61
                    String body = responseHandler.handleResponse(resp);
62
                    
63
                    if (resp.getStatusLine().getStatusCode() == 200 || resp.getStatusLine().getStatusCode() == 203) {                            
64
                            ContainerObjectXMLparser filesXMLParser = new ContainerObjectXMLparser();
65
                            SAXParser saxParser = SAXParserFactory.newInstance().newSAXParser();
66
                            XMLReader xmlReader = saxParser.getXMLReader();
67
                            xmlReader.setContentHandler(filesXMLParser);
68
                    
69
                            xmlReader.parse(new InputSource(new StringReader(body)));
70
                            files = filesXMLParser.getViewFiles();
71
                            
72
                    } else {
73
                            CloudServersFaultXMLParser parser = new CloudServersFaultXMLParser();
74
                            SAXParser saxParser = SAXParserFactory.newInstance().newSAXParser();
75
                            XMLReader xmlReader = saxParser.getXMLReader();
76
                            xmlReader.setContentHandler(parser);
77
                            xmlReader.parse(new InputSource(new StringReader(body)));                            
78
                            CloudServersException cse = parser.getException();                            
79
                            throw cse;
80
                    }
81
                } catch (ClientProtocolException e) {
82
                        CloudServersException cse = new CloudServersException();
83
                        cse.setMessage(e.getLocalizedMessage());
84
                        throw cse;
85
                } catch (IOException e) {
86
                        CloudServersException cse = new CloudServersException();
87
                        cse.setMessage(e.getLocalizedMessage());
88
                        throw cse;
89
                } catch (ParserConfigurationException e) {
90
                        CloudServersException cse = new CloudServersException();
91
                        cse.setMessage(e.getLocalizedMessage());
92
                        throw cse;
93
                } catch (SAXException e) {
94
                        CloudServersException cse = new CloudServersException();
95
                        cse.setMessage(e.getLocalizedMessage());
96
                        throw cse;
97
                } catch (FactoryConfigurationError e) {
98
                        CloudServersException cse = new CloudServersException();
99
                        cse.setMessage(e.getLocalizedMessage());
100
                        throw cse;
101
                }
102
                return files;
103
                
104
        }
105

    
106
        public HttpResponse deleteObject(String Container, String Object) throws CloudServersException {
107
                HttpResponse resp = null;
108
                DefaultHttpClient httpclient = new DefaultHttpClient();
109
                HttpDelete deleteObject = new HttpDelete(Account.getStorageUrl() + "/" + Container + "/" + Object);
110
                Log.v(LOG, "the container (deleteObject) vairble "+Container+" "+Object);
111
                                
112
                deleteObject.addHeader("X-Auth-Token", Account.getAuthToken());
113
                httpclient.removeRequestInterceptorByClass(RequestExpectContinue.class);
114

    
115
                try {                        
116
                        resp = httpclient.execute(deleteObject);
117
                } catch (ClientProtocolException e) {
118
                        CloudServersException cse = new CloudServersException();
119
                        cse.setMessage(e.getLocalizedMessage());
120
                        throw cse;
121
                } catch (IOException e) {
122
                        CloudServersException cse = new CloudServersException();
123
                        cse.setMessage(e.getLocalizedMessage());
124
                        throw cse;
125
                } catch (FactoryConfigurationError e) {
126
                        CloudServersException cse = new CloudServersException();
127
                        cse.setMessage(e.getLocalizedMessage());
128
                        throw cse;
129
                }        
130
                return resp;
131
        }
132
        
133

    
134
}