public PropertyFilterList<S> get(int index) {
        if (index <= 0) {
            if (index == 0) {
                return this;
            }
            if ((index = mNextRemaining + index + 1) <= 0) {
                if (index == 0) {
                    return this;
                }
                return null;
            }
        }
        if (mNext == null) {
            return null;
        }
        // Tail recursion.
        return mNext.get(index - 1);
    }
public PropertyFilterList < S > get ( int index ) { if ( index <= 0 ) { if ( index == 0 ) { return this ; } if ( ( index = mNextRemaining + index + 1 ) <= 0 ) { if ( index == 0 ) { return this ; } return null ; } } if ( mNext == null ) { return null ; } return mNext . get ( index - 1 ) ; }
@param index if zero, returns this, if one, returns next, etc. If
negative, gets from last. -1 returns last, -2 returns next to last, etc.
@return null if index too high or too low