package com.rackspace.cloud.files.api.client.parsers;
import java.util.ArrayList;
import org.xml.sax.Attributes;
import org.xml.sax.helpers.DefaultHandler;
import android.util.Log;
import com.rackspace.cloud.files.api.client.ContainerObjects;
/**
*
* @author Phillip Toohill
*
*/
public class ContainerObjectXMLparser extends DefaultHandler {
private ContainerObjects object;
private ArrayList<ContainerObjects> files;
private StringBuffer currentData;
public String LOG = "ViewFilesXMLparser";
public void startDocument() {
Log.v(LOG, "startDocument");
}
public void endDocument() {
Log.v(LOG, "endDocument = true");
}
public void startElement(String uri, String name, String qName,
Attributes atts) {
currentData = new StringBuffer();
if ("container".equals(name)) {
files = new ArrayList<ContainerObjects>();
} else if ("object".equals(name)) {
object = new ContainerObjects();
}
}
public void endElement(String uri, String name, String qName) {
String value = currentData.toString().trim();
if ("container".equals(name)) {
} else if ("object".equals(name)) {
if (files != null) {
files.add(object);
}
} else if ("name".equals(name)) {
object.setCName(value);
} else if ("content_type".equals(name)) {
object.setContentType(value);
} else if ("hash".equals(name)) {
object.setHash(value);
} else if ("bytes".equals(name)) {
object.setBytes(Integer.parseInt(value));
} else if ("last_modified".equals(name)) {
object.setLastMod(value);
}
}
public void characters(char ch[], int start, int length) {
Log.d("Rackspace-Cloud", "Characters: \"");
for (int i = start; i < start + length; i++) {
switch (ch[i]) {
case '\\':
Log.d("Rackspace-Cloud", "\\\\");
break;
case '"':
Log.d("Rackspace-Cloud", "\\\"");
break;
case '\n':
Log.d("Rackspace-Cloud", "\\n");
break;
case '\r':
Log.d("Rackspace-Cloud", "\\r");
break;
case '\t':
Log.d("Rackspace-Cloud", "\\t");
break;
default:
Log.d("Rackspace-Cloud", String.valueOf(ch[i]));
break;
}
}
Log.d("Rackspace-Cloud", "\"\n");
// String strCharacters = new String(ch, start, length);
for (int i = start; i < (start + length); i++) {
currentData.append(ch[i]);
}
}
public ContainerObjects getObject() {
return object;
}
public void setObject(ContainerObjects object) {
this.object = object;
}
/**
* @return the files
*/
public ArrayList<ContainerObjects> getViewFiles() {
return files;
}
/**
* @param files
* the servers to set
*/
public void setFiles(ArrayList<ContainerObjects> files) {
this.files = files;
}
}