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;
/ * w w w . j a v a 2 s . c o m * /
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