@Nullable
  public ELEMENTTYPE take ()
  {
    final int nAvailable = m_nAvailable;
    if (nAvailable == 0)
      return null;

    int nIndex = m_nWritePos - nAvailable;
    if (nIndex < 0)
      nIndex += m_nCapacity;

    final Object ret = m_aElements[nIndex];
    m_nAvailable--;
    return GenericReflection.uncheckedCast (ret);
  }
@ Nullable public ELEMENTTYPE take ( ) { final int nAvailable = m_nAvailable ; if ( nAvailable == 0 ) return null ; int nIndex = m_nWritePos - nAvailable ; if ( nIndex < 0 ) nIndex += m_nCapacity ; final Object ret = m_aElements [ nIndex ] ; m_nAvailable -- ; return GenericReflection . uncheckedCast ( ret ) ; }
Take an element from the ring buffer.

@return <code>null</code> if no more element is available or if the current
element is <code>null</code>.