package com.kickstarter.models;

import android.os.Parcel;
import android.os.Parcelable;

import com.hannesdorfmann.parcelableplease.annotation.ParcelablePlease;

@ParcelablePlease
public class Location implements Parcelable {
  Integer id = null;
  String name = null;
  String displayableName = null;

  public Integer id() { return id; }
  public String name() { return name; }
  public String displayableName() { return displayableName; }

  @Override
  public int describeContents() {
    return 0;
  }

  @Override
  public void writeToParcel(Parcel dest, int flags) {
    LocationParcelablePlease.writeToParcel(this, dest, flags);
  }

  public static final Creator<Location> CREATOR = new Creator<Location>() {
    public Location createFromParcel(Parcel source) {
      Location target = new Location();
      LocationParcelablePlease.readFromParcel(target, source);
      return target;
    }

    public Location[] newArray(int size) {
      return new Location[size];
    }
  };
}

package com.kickstarter.models;

import android.os.Parcel;
import android.os.Parcelable;

import com.hannesdorfmann.parcelableplease.annotation.ParcelablePlease;
import com.kickstarter.libs.AutoGson;

import auto.parcel.AutoParcel;

@AutoParcel @AutoGson
public abstract class Location implements Parcelable {
  public abstract String displayableName();
  public abstract long id();
  public abstract String name();

  @AutoParcel.Builder
  public abstract static class Builder {
    public abstract Builder displayableName(String __);
    public abstract Builder id(long __);
    public abstract Builder name(String __);
    public abstract Location builder();
  }

  public static Builder builder() {
    return new AutoParcel_Location.Builder();
  }

  public abstract Builder toBuilder();
}

Switch Location to AutoParcel