/** * Copyright 2010 Mark Wyszomierski */ package com.joelapenna.foursquare.types; import com.joelapenna.foursquare.util.ParcelUtils; import android.os.Parcel; import android.os.Parcelable; /** * @date March 6, 2010 * @author Mark Wyszomierski (markww@gmail.com) */ public class Category implements FoursquareType, Parcelable { /** The category's id. */ private String mId; /** Full category path name, like Nightlife:Bars. */ private String mFullPathName; /** Simple name of the category. */ private String mNodeName; /** Url of the icon associated with this category. */ private String mIconUrl; /** Categories can be nested within one another too. */ private Group<Category> mChildCategories; public Category() { mChildCategories = new Group<Category>(); } private Category(Parcel in) { mChildCategories = new Group<Category>(); mId = ParcelUtils.readStringFromParcel(in); mFullPathName = ParcelUtils.readStringFromParcel(in); mNodeName = ParcelUtils.readStringFromParcel(in); mIconUrl = ParcelUtils.readStringFromParcel(in); int numCategories = in.readInt(); for (int i = 0; i < numCategories; i++) { Category category = in.readParcelable(Category.class.getClassLoader()); mChildCategories.add(category); } } public static final Parcelable.Creator<Category> CREATOR = new Parcelable.Creator<Category>() { public Category createFromParcel(Parcel in) { return new Category(in); } @Override public Category[] newArray(int size) { return new Category[size]; } }; public String getId() { return mId; } public void setId(String id) { mId = id; } public String getFullPathName() { return mFullPathName; } public void setFullPathName(String fullPathName) { mFullPathName = fullPathName; } public String getNodeName() { return mNodeName; } public void setNodeName(String nodeName) { mNodeName = nodeName; } public String getIconUrl() { return mIconUrl; } public void setIconUrl(String iconUrl) { mIconUrl = iconUrl; } public Group<Category> getChildCategories() { return mChildCategories; } public void setChildCategories(Group<Category> categories) { mChildCategories = categories; } @Override public void writeToParcel(Parcel out, int flags) { ParcelUtils.writeStringToParcel(out, mId); ParcelUtils.writeStringToParcel(out, mFullPathName); ParcelUtils.writeStringToParcel(out, mNodeName); ParcelUtils.writeStringToParcel(out, mIconUrl); out.writeInt(mChildCategories.size()); for (Category it : mChildCategories) { out.writeParcelable(it, flags); } } @Override public int describeContents() { return 0; } }