package net.naonedbus.bean; import net.naonedbus.widget.item.SectionItem; import android.location.Location; import android.os.Parcel; import android.os.Parcelable; public class Bicloo implements SectionItem, Comparable<Bicloo>, Parcelable { public static enum Status { UNKNOWN, CLOSED, OPEN; } private int mId; private String mName; private String mAddress; private Location mLocation; private boolean mBanking; private boolean mBonus; private Status mStatus = Status.UNKNOWN; private int mBikeStands; private int mAvailableBikeStands; private int mAvailableBike; private long mLastUpdate; private Object mSection; private Float mDistance; public Bicloo() { } protected Bicloo(final Parcel in) { mId = in.readInt(); mName = in.readString(); mAddress = in.readString(); mLocation = in.readParcelable(Location.class.getClassLoader()); mBanking = in.readInt() == 1; mBonus = in.readInt() == 1; mStatus = Status.values()[in.readInt()]; mBikeStands = in.readInt(); mAvailableBikeStands = in.readInt(); mAvailableBike = in.readInt(); mLastUpdate = in.readLong(); } public void set(final Bicloo bicloo) { mId = bicloo.getId(); mName = bicloo.getName(); mAddress = bicloo.getAddress(); mLocation = bicloo.getLocation(); mBanking = bicloo.isBanking(); mBonus = bicloo.isBonus(); mStatus = bicloo.getStatus(); mBikeStands = bicloo.getBikeStands(); mAvailableBikeStands = bicloo.getAvailableBikeStands(); mAvailableBike = bicloo.getAvailableBike(); mLastUpdate = bicloo.getLastUpdate(); } public int getId() { return mId; } public void setId(final int id) { mId = id; } public String getName() { return mName; } public void setName(final String name) { mName = name; } public String getAddress() { return mAddress; } public void setAddress(final String address) { mAddress = address; } public Location getLocation() { return mLocation; } public void setLocation(final Location location) { mLocation = location; } public boolean isBanking() { return mBanking; } public void setBanking(final boolean banking) { mBanking = banking; } public boolean isBonus() { return mBonus; } public void setBonus(final boolean bonus) { mBonus = bonus; } public Status getStatus() { return mStatus; } public void setStatus(final Status status) { mStatus = status; } public void setStatus(final String status) { for (final Status s : Status.values()) { if (s.name().equals(status)) { mStatus = s; break; } } } public int getBikeStands() { return mBikeStands; } public void setBikeStands(final int bikeStands) { mBikeStands = bikeStands; } public int getAvailableBikeStands() { return mAvailableBikeStands; } public void setAvailableBikeStands(final int availableBikeStands) { mAvailableBikeStands = availableBikeStands; } public int getAvailableBike() { return mAvailableBike; } public void setAvailableBike(final int availableBike) { mAvailableBike = availableBike; } public long getLastUpdate() { return mLastUpdate; } public void setLastUpdate(final long lastUpdate) { mLastUpdate = lastUpdate; } public Float getDistance() { return mDistance; } public void setDistance(final Float distance) { mDistance = distance; } @Override public int compareTo(final Bicloo another) { if (another == null || another.getName() == null || getName() == null) { return 0; } return getName().compareTo(another.getName()); } @Override public Object getSection() { return mSection; } public void setSection(final Object section) { mSection = section; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(final Parcel dest, final int flags) { dest.writeInt(mId); dest.writeString(mName); dest.writeString(mAddress); dest.writeParcelable(mLocation, 0); dest.writeInt(mBanking ? 1 : 0); dest.writeInt(mBonus ? 1 : 0); dest.writeInt(mStatus.ordinal()); dest.writeInt(mBikeStands); dest.writeInt(mAvailableBikeStands); dest.writeInt(mAvailableBike); dest.writeLong(mLastUpdate); } public static final Parcelable.Creator<Bicloo> CREATOR = new Parcelable.Creator<Bicloo>() { @Override public Bicloo createFromParcel(final Parcel in) { return new Bicloo(in); } @Override public Bicloo[] newArray(final int size) { return new Bicloo[size]; } }; }