package org.softeg.slartus.forpdaapi.devdb; import android.os.Parcel; import android.os.Parcelable; import org.softeg.slartus.forpdaapi.ICatalogItem; /** * Created by slartus on 06.03.14. */ public class DevCatalog implements ICatalogItem, Parcelable { public static final int ROOT = -1; public static final int DEVICE_TYPE = 0; public static final int DEVICE_BRAND = 1; private String mId; private String mTitle; private String mImageUrl; private String description; private int type; private ICatalogItem parent; public DevCatalog(String id, String title) { mId = id; mTitle = title; } @Override public CharSequence getId() { return mId; } @Override public CharSequence getTitle() { return mTitle; } @Override public CharSequence getSubTitle() { return description; } @Override public ICatalogItem getParent() { return parent; } @Override public void setParent(ICatalogItem catalogItem) { this.parent = catalogItem; } @Override public ICatalogItem clone() { DevCatalog clone = new DevCatalog(mId, mTitle); clone.setType(type); clone.setDescription(description); clone.setImageUrl(mImageUrl); clone.setParent(parent == null ? null : parent.clone()); return clone; } public String getImageUrl() { return mImageUrl; } public void setImageUrl(String imageUrl) { this.mImageUrl = imageUrl; } public void setDescription(String description) { this.description = description; } public int getType() { return type; } public DevCatalog setType(int type) { this.type = type; return this; } public static final Parcelable.Creator<DevCatalog> CREATOR = new Parcelable.Creator<DevCatalog>() { // распаковываем объект из Parcel public DevCatalog createFromParcel(Parcel in) { return new DevCatalog(in); } public DevCatalog[] newArray(int size) { return new DevCatalog[size]; } }; private DevCatalog(Parcel parcel) { mId = parcel.readString(); mTitle = parcel.readString(); description = parcel.readString(); mImageUrl = parcel.readString(); type = parcel.readInt(); Boolean hasParent = parcel.readByte() == 1; if (hasParent) parent = new DevCatalog(parcel); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel parcel, int i) { parcel.writeString(mId); parcel.writeString(mTitle); parcel.writeString(description); parcel.writeString(mImageUrl); parcel.writeInt(type); if (parent == null) { parcel.writeByte((byte) 0); } else { parcel.writeByte((byte) 1); ((DevCatalog) parent).writeToParcel(parcel, i); } } }