Android Open Source - MassRoute Route Parser






From Project

Back to project page MassRoute.

License

The source code is released under:

Copyright (c) 2010 Todd Anderson http://www.custardbelly.com/blog Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (th...

If you think the Android project MassRoute listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.custardbelly.massdot.parser;
/* ww w  .j  av a  2s.com*/
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;

import com.custardbelly.massdot.exception.MassRouteParserException;
import com.custardbelly.massdot.model.Route;
import com.custardbelly.massdot.parser.handler.MassRouteServiceParserHandler;

public class RouteParser implements IRouteParser 
{
  private URL service;
  
  public RouteParser( URL service )
  {
    this.service = service;
  }
  
  public RouteParser( String service )
  {
    try
    {
      this.service = new URL( service );
    }
    catch( MalformedURLException e )
    {
      throw new RuntimeException( e );
    }
  }
  
  // Android SAX parser - http://www.ibm.com/developerworks/opensource/library/x-android/index.html
  public List<Route> parse() throws MassRouteParserException
  {
    RouteParserHandler handler = new RouteParserHandler();
    try
    {
      SAXParserFactory spf = SAXParserFactory.newInstance();
      SAXParser sp = spf.newSAXParser();
      XMLReader reader = sp.getXMLReader();
      reader.setContentHandler( handler );
      InputSource input = new InputSource( service.openStream() );
      reader.parse( input );
      if( handler.hasError() )
      {
        throw new MassRouteParserException( handler.getErrorMessage() );
      }
      return handler.routes;
    }
    catch( Exception e )
    {
      throw new MassRouteParserException( e.getMessage() );
    }
  }
  
  private class RouteParserHandler extends MassRouteServiceParserHandler 
  {  
    public List<Route> routes;
    
    public RouteParserHandler()
    {
      routes = new ArrayList<Route>();
    }
    
    @Override
    public void startElement( String uri, String localName, String qName, Attributes attributes )
    {
      if( localName.equalsIgnoreCase( "route" ) )
      {
        routes.add( new Route( attributes.getValue("tag"), attributes.getValue("title" ) ) );
      }
      super.startElement(uri, localName, qName, attributes);
    }
  }
}




Java Source Code List

com.custardbelly.massdot.MassRoute.java
com.custardbelly.massdot.enumeration.ActivityResultType.java
com.custardbelly.massdot.enumeration.ActivityViewType.java
com.custardbelly.massdot.enumeration.IntentExtraType.java
com.custardbelly.massdot.exception.MassRouteParserException.java
com.custardbelly.massdot.model.MassRouteModel.java
com.custardbelly.massdot.model.RouteConfig.java
com.custardbelly.massdot.model.RouteDirection.java
com.custardbelly.massdot.model.RouteSearchContentProvider.java
com.custardbelly.massdot.model.RouteStop.java
com.custardbelly.massdot.model.Route.java
com.custardbelly.massdot.model.StopPrediction.java
com.custardbelly.massdot.model.StoredStopRequest.java
com.custardbelly.massdot.model.StoredStopRequests.java
com.custardbelly.massdot.parser.IRouteConfigParser.java
com.custardbelly.massdot.parser.IRouteParser.java
com.custardbelly.massdot.parser.IStopPredictionsParser.java
com.custardbelly.massdot.parser.RouteConfigParser.java
com.custardbelly.massdot.parser.RouteParser.java
com.custardbelly.massdot.parser.StopPredictionsParser.java
com.custardbelly.massdot.parser.handler.MassRouteServiceParserHandler.java
com.custardbelly.massdot.service.IMassRouteService.java
com.custardbelly.massdot.service.IPreferenceService.java
com.custardbelly.massdot.service.IQueueableTaskResponder.java
com.custardbelly.massdot.service.IQueueableTask.java
com.custardbelly.massdot.service.IServiceTaskQueue.java
com.custardbelly.massdot.service.MassRouteService.java
com.custardbelly.massdot.service.PreferenceService.java
com.custardbelly.massdot.service.RouteConfigTask.java
com.custardbelly.massdot.service.RouteListTask.java
com.custardbelly.massdot.service.ServiceTaskQueue.java
com.custardbelly.massdot.service.StopPredictionTask.java
com.custardbelly.massdot.service.responder.IMassRouteServiceResponder.java
com.custardbelly.massdot.service.responder.IRoutesConfigServiceResponder.java
com.custardbelly.massdot.service.responder.IRoutesServiceResponder.java
com.custardbelly.massdot.service.responder.IStopPredictionsServiceResponder.java
com.custardbelly.massdot.view.MassRouteServiceView.java
com.custardbelly.massdot.view.RouteDirectionView.java
com.custardbelly.massdot.view.RouteListView.java
com.custardbelly.massdot.view.RouteStopsView.java
com.custardbelly.massdot.view.StopPredictionsView.java
com.custardbelly.massdot.view.adapter.RouteAdapter.java
com.custardbelly.massdot.view.adapter.RouteDirectionAdapter.java
com.custardbelly.massdot.view.adapter.RouteStopsAdapter.java
com.custardbelly.massdot.view.adapter.StopPredictionsAdapter.java
com.custardbelly.massdot.view.adapter.StoredStopRequestsAdapter.java