/**
* Copyright 2009 Joe LaPenna
*/
package com.joelapenna.foursquare.parsers;
import com.joelapenna.foursquare.Foursquare;
import com.joelapenna.foursquare.error.FoursquareError;
import com.joelapenna.foursquare.error.FoursquareParseException;
import com.joelapenna.foursquare.types.Venue;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* Auto-generated: 2009-11-17 09:33:44.568010
*
* @author Joe LaPenna (joe@joelapenna.com)
* @param <T>
*/
public class VenueParser extends AbstractParser<Venue> {
private static final Logger LOG = Logger.getLogger(VenueParser.class.getCanonicalName());
private static final boolean DEBUG = Foursquare.PARSER_DEBUG;
@Override
public Venue parseInner(XmlPullParser parser) throws XmlPullParserException, IOException,
FoursquareError, FoursquareParseException {
parser.require(XmlPullParser.START_TAG, null, null);
Venue venue = new Venue();
while (parser.nextTag() == XmlPullParser.START_TAG) {
String name = parser.getName();
if ("address".equals(name)) {
venue.setAddress(parser.nextText());
} else if ("checkins".equals(name)) {
venue.setCheckins(new GroupParser(new CheckinParser()).parse(parser));
} else if ("city".equals(name)) {
venue.setCity(parser.nextText());
} else if ("cityid".equals(name)) {
venue.setCityid(parser.nextText());
} else if ("crossstreet".equals(name)) {
venue.setCrossstreet(parser.nextText());
} else if ("distance".equals(name)) {
venue.setDistance(parser.nextText());
} else if ("geolat".equals(name)) {
venue.setGeolat(parser.nextText());
} else if ("geolong".equals(name)) {
venue.setGeolong(parser.nextText());
} else if ("id".equals(name)) {
venue.setId(parser.nextText());
} else if ("name".equals(name)) {
venue.setName(parser.nextText());
} else if ("phone".equals(name)) {
venue.setPhone(parser.nextText());
} else if ("primarycategory".equals(name)) {
venue.setCategory(new CategoryParser().parse(parser));
} else if ("specials".equals(name)) {
venue.setSpecials(new GroupParser(new SpecialParser()).parse(parser));
} else if ("state".equals(name)) {
venue.setState(parser.nextText());
} else if ("stats".equals(name)) {
venue.setStats(new StatsParser().parse(parser));
} else if ("tags".equals(name)) {
venue.setTags(new TagsParser().parse(parser));
} else if ("tips".equals(name)) {
venue.setTips(new GroupParser(new TipParser()).parse(parser));
} else if ("todos".equals(name)) {
venue.setTodos(new GroupParser(new TipParser()).parse(parser));
} else if ("twitter".equals(name)) {
venue.setTwitter(parser.nextText());
} else if ("zip".equals(name)) {
venue.setZip(parser.nextText());
} else {
// Consume something we don't understand.
if (DEBUG) LOG.log(Level.FINE, "Found tag that we don't recognize: " + name);
skipSubTree(parser);
}
}
return venue;
}
}