LastfmXMLHandler.java :  » App » gone-to-get » pt » gtg » musicinfo » lastfm » xml » Android Open Source

Android Open Source » App » gone to get 
gone to get » pt » gtg » musicinfo » lastfm » xml » LastfmXMLHandler.java
package pt.gtg.musicinfo.lastfm.xml;

import java.util.List;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

import android.util.Log;

import pt.gtg.musicinfo.data.DataEntry;

public abstract class LastfmXMLHandler
  extends DefaultHandler
{
  private static final String TAG = "Lastfm XML Handler";
  protected String position = "";
  
  public void startDocument() 
    throws SAXException
  {
    init();
  }
  
  public void endDocument() 
    throws SAXException 
  {
    // nothing to do.
  }
  
  /** Gets be called on opening tags like:
   * <tag>
   * Can provide attribute(s), when xml was like:
   * <tag attribute="attributeValue">*/
  public void startElement(String namespaceURI, String localName,
    String qName, Attributes attrs)
    throws SAXException 
  {
    position = position.concat("." + localName);
    startElementExtra(namespaceURI, localName, qName, attrs);
    
    Log.d(TAG, "starting element: "+position);
  }
  
  protected abstract void startElementExtra(String namespaceURI, 
    String localName, String qName, Attributes attrs)
    throws SAXException;
  
  /** Gets be called on closing tags like:
   * </tag> */
  public void endElement(String namespaceURI, String localName, String qName)
    throws SAXException 
  {
    endElementExtra(namespaceURI, localName, qName);
    position = position.substring(0, position.lastIndexOf("." + localName));
  }
  
  
  protected abstract void endElementExtra(String namespaceURI, 
    String localName, String qName);

  protected abstract void init();
  
  public abstract List<DataEntry> getParsedData();
  public abstract void characters(char ch[], int start, int length);
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.