src/org/gege/caldavsyncadapter/caldav/xml/MultiStatusHandler.java

changeset 0
fb9019fb1bf7
equal deleted inserted replaced
-1:000000000000 0:2b5c79c8e04d
1 package org.gege.caldavsyncadapter.caldav.xml;
2
3 import org.gege.caldavsyncadapter.caldav.xml.sax.MultiStatus;
4 import org.gege.caldavsyncadapter.caldav.xml.sax.Prop;
5 import org.gege.caldavsyncadapter.caldav.xml.sax.PropStat;
6 import org.gege.caldavsyncadapter.caldav.xml.sax.Response;
7 import org.xml.sax.Attributes;
8 import org.xml.sax.SAXException;
9 import org.xml.sax.helpers.DefaultHandler;
10
11
12 public class MultiStatusHandler extends DefaultHandler {
13 public MultiStatus mMultiStatus;
14 private Response mResponse;
15 private PropStat mPropStat;
16 private Prop mProp;
17 private String mCurrentValue;
18
19 private String RESPONSE = "response";
20 private String HREF = "href";
21 private String PROPSTAT = "propstat";
22 private String PROP = "prop";
23 private String STATUS = "status";
24 private String CALENDARDATA = "calendar-data";
25 private String GETETAG = "getetag";
26
27 public MultiStatusHandler() {
28 mMultiStatus = new MultiStatus();
29 }
30
31 @Override
32 public void characters(char[] ch, int start, int length) throws SAXException {
33 mCurrentValue += new String(ch, start, length);
34 }
35
36 @Override
37 public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException {
38 mCurrentValue = "";
39 if (localName.equals(RESPONSE)) {
40 mResponse = new Response();
41 mMultiStatus.ResponseList.add(mResponse);
42 } else if (localName.equals(PROPSTAT)) {
43 mPropStat = new PropStat();
44 mResponse.propstat = mPropStat;
45 } else if (localName.equals(PROP)) {
46 mProp = new Prop();
47 mPropStat.prop = mProp;
48 }
49 }
50
51 @Override
52 public void endElement(String uri, String localName, String qName) throws SAXException {
53 if (localName.equals(HREF)) {
54 mResponse.href = mCurrentValue;
55 } else if (localName.equals(STATUS)) {
56 if (mPropStat != null)
57 mPropStat.status = mCurrentValue;
58 } else if (localName.equals(CALENDARDATA)) {
59 mProp.calendardata = mCurrentValue;
60 } else if (localName.equals(GETETAG)) {
61 mProp.getetag = mCurrentValue;
62 }
63 }
64 }

mercurial