class IndexPlainRowImpl implements IndexRow {
    /** */
    private final IndexKey[] keys;

    /** */
    private final InlineIndexRowHandler rowHnd;

    /** Constructor. */
    public IndexPlainRowImpl(IndexKey[] idxKeys, InlineIndexRowHandler rowHnd) {
        keys = idxKeys;
        this.rowHnd = rowHnd;
    }

    /** {@inheritDoc} */
    @Override public IndexKey key(int idx) {
        return keys[idx];
    }

    /** {@inheritDoc} */
    @Override public int keysCount() {
        return keys.length;
    }

    /** {@inheritDoc} */
    @Override public String toString() {
        return S.toString(IndexPlainRowImpl.class, this);
    }

    /** {@inheritDoc} */
    @Override public long link() {
        assert false : "Should not get link by IndexPlainRowImpl";

        return 0;
    }

    /** {@inheritDoc} */
    @Override public InlineIndexRowHandler rowHandler() {
        return rowHnd;
    }

    /** {@inheritDoc} */
    @Override public CacheDataRow cacheDataRow() {<FILL_FUNCTION_BODY>}

    /** {@inheritDoc} */
    @Override public boolean indexPlainRow() {
        return true;
    }
}

        assert false : "Should not cache data row by IndexPlainRowImpl";

        return null;
    
<no_super_class>