/* © 2010 Stephan Reichholf <stephan at reichholf dot net> * * Licensed under the Create-Commons Attribution-Noncommercial-Share Alike 3.0 Unported * http://creativecommons.org/licenses/by-nc-sa/3.0/ */ package net.reichholf.dreamdroid.parsers.enigma2.saxhandler; import net.reichholf.dreamdroid.helpers.enigma2.SleepTimer; import org.xml.sax.Attributes; public class E2SleepTimerHandler extends E2SimpleHandler { protected static final String TAG_E2SLEEPTIMER = "e2sleeptimer"; protected static final String TAG_E2ENABLED = "e2enabled"; protected static final String TAG_E2MINUTES = "e2minutes"; protected static final String TAG_E2ACTION = "e2action"; protected static final String TAG_E2TEXT = "e2text"; private boolean inSleeptimer = false; private boolean inEnabled = false; private boolean inMinutes = false; private boolean inAction = false; private boolean inText = false; /* * (non-Javadoc) * * @see org.xml.sax.helpers.DefaultHandler#startElement(java.lang.String, * java.lang.String, java.lang.String, org.xml.sax.Attributes) */ @Override public void startElement(String namespaceUri, String localName, String qName, Attributes attrs) { if (localName.equals(TAG_E2SLEEPTIMER)) { inSleeptimer = true; } else if (inSleeptimer) { switch (localName) { case TAG_E2ENABLED: inEnabled = true; break; case TAG_E2MINUTES: inMinutes = true; break; case TAG_E2ACTION: inAction = true; break; case TAG_E2TEXT: inText = true; break; } } } /* * (non-Javadoc) * * @see org.xml.sax.helpers.DefaultHandler#endElement(java.lang.String, * java.lang.String, java.lang.String) */ @Override public void endElement(String namespaceURI, String localName, String qName) { if (localName.equals(TAG_E2SLEEPTIMER)) { inSleeptimer = false; } else if (inSleeptimer) { switch (localName) { case TAG_E2ENABLED: inEnabled = false; break; case TAG_E2MINUTES: inMinutes = false; break; case TAG_E2ACTION: inAction = false; break; case TAG_E2TEXT: inText = false; break; } } } /* * (non-Javadoc) * * @see org.xml.sax.helpers.DefaultHandler#characters(char[], int, int) */ @Override public void characters(char ch[], int start, int length) { String value = new String(ch, start, length); if (inEnabled) { mResult.putOrConcat(SleepTimer.KEY_ENABLED, value); } else if (inMinutes) { mResult.putOrConcat(SleepTimer.KEY_MINUTES, value); } else if (inAction) { mResult.putOrConcat(SleepTimer.KEY_ACTION, value); } else if (inText) { mResult.putOrConcat(SleepTimer.KEY_TEXT, value); } } }