/** * Copyright 2010 Mark Wyszomierski */ package com.joelapenna.foursquare.parsers.json; import com.joelapenna.foursquare.Foursquare; import com.joelapenna.foursquare.types.User; import org.json.JSONException; import org.json.JSONObject; import java.util.logging.Level; import java.util.logging.Logger; /** * @date July 13, 2010 * @author Mark Wyszomierski (markww@gmail.com) */ public class UserParser extends AbstractParser<User> { @Override public User parse(JSONObject json) throws JSONException { User user = new User(); if (json.has("badges")) { user.setBadges( new GroupParser( new BadgeParser()).parse(json.getJSONArray("badges"))); } if (json.has("badgecount")) { user.setBadgeCount(json.getInt("badgecount")); } if (json.has("checkin")) { user.setCheckin(new CheckinParser().parse(json.getJSONObject("checkin"))); } if (json.has("checkincount")) { user.setCheckinCount(json.getInt("checkincount")); } if (json.has("created")) { user.setCreated(json.getString("created")); } if (json.has("email")) { user.setEmail(json.getString("email")); } if (json.has("facebook")) { user.setFacebook(json.getString("facebook")); } if (json.has("firstname")) { user.setFirstname(json.getString("firstname")); } if (json.has("followercount")) { user.setFollowerCount(json.getInt("followercount")); } if (json.has("friendcount")) { user.setFriendCount(json.getInt("friendcount")); } if (json.has("friendsincommon")) { user.setFriendsInCommon( new GroupParser( new UserParser()).parse(json.getJSONArray("friendsincommon"))); } if (json.has("friendstatus")) { user.setFriendstatus(json.getString("friendstatus")); } if (json.has("gender")) { user.setGender(json.getString("gender")); } if (json.has("hometown")) { user.setHometown(json.getString("hometown")); } if (json.has("id")) { user.setId(json.getString("id")); } if (json.has("lastname")) { user.setLastname(json.getString("lastname")); } if (json.has("mayor")) { user.setMayorships( new GroupParser( new VenueParser()).parse(json.getJSONArray("mayor"))); } if (json.has("mayorcount")) { user.setMayorCount(json.getInt("mayorcount")); } if (json.has("phone")) { user.setPhone(json.getString("phone")); } if (json.has("photo")) { user.setPhoto(json.getString("photo")); } if (json.has("settings")) { user.setSettings(new SettingsParser().parse(json.getJSONObject("settings"))); } if (json.has("tipcount")) { user.setTipCount(json.getInt("tipcount")); } if (json.has("todocount")) { user.setTodoCount(json.getInt("todocount")); } if (json.has("twitter")) { user.setTwitter(json.getString("twitter")); } if (json.has("types")) { user.setTypes(new TypesParser().parseAsJSONArray(json.getJSONArray("types"))); } return user; } //@Override //public String getObjectName() { // return "user"; //} }