package com.fsck.k9.mail.store.webdav; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; import java.util.LinkedList; /** * Handler for WebDAV XML events */ class WebDavHandler extends DefaultHandler { private DataSet mDataSet = new DataSet(); private final LinkedList<String> mOpenTags = new LinkedList<String>(); public DataSet getDataSet() { return this.mDataSet; } @Override public void startDocument() throws SAXException { this.mDataSet = new DataSet(); } @Override public void endDocument() throws SAXException { /* Do nothing */ } @Override public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException { mOpenTags.addFirst(localName); } @Override public void endElement(String namespaceURI, String localName, String qName) { mOpenTags.removeFirst(); /** Reset the hash temp variables */ if (localName.equals("response")) { this.mDataSet.finish(); } } @Override public void characters(char ch[], int start, int length) { String value = new String(ch, start, length); mDataSet.addValue(value, mOpenTags.peek()); } }