package com.hci.moola.view; public class ExpandableListItem<T extends Comparable<? super T>> implements Comparable<ExpandableListItem<T>> { private T mItem; private Object mTag; private boolean mIsExpanded; private int mCollapsedHeight; public ExpandableListItem(T item) { this.mItem = item; mIsExpanded = false; } public boolean isExpanded() { return mIsExpanded; } public void toggleExpanded() { mIsExpanded = !mIsExpanded; } public void setExpanded(boolean isExpanded) { mIsExpanded = isExpanded; } public T getItem() { return mItem; } public void setTag(Object o) { mTag = o; } public Object getTag() { return mTag; } public void setCollapsedHeight(int height) { mCollapsedHeight = height; } public int getCollapsedHeight() { return mCollapsedHeight; } @Override public boolean equals(Object o) { if (o instanceof ExpandableListItem) return mItem.equals(((ExpandableListItem) o).mItem); if (o instanceof Comparable<?>) return mItem.equals((T) o); return false; } @Override public int hashCode() { return mItem.hashCode(); } @Override public int compareTo(ExpandableListItem<T> another) { return mItem.compareTo(another.mItem); } }