code: @SuppressWarnings("unchecked")
    @Override
    public REC previous() {
      checkDirection(false);
  
      if (currentRecord != null)
        try {
          // RETURN LAST LOADED RECORD
          return (REC) currentRecord;
        } finally {
          currentRecord = null;
        }
  
      ORecordInternal<?> record = getRecord();
  
      // MOVE BACKWARD IN THE CURRENT CLUSTER
      while (hasPrevious()) {
        if (currentRecord != null)
          try {
            // RETURN LAST LOADED RECORD
            return (REC) currentRecord;
          } finally {
            currentRecord = null;
          }
  
        if (record == null)
          record = readCurrentRecord(null, -1);
  
        if (record != null)
          // FOUND
          if (include(record))
            return (REC) record;
      }
  
      record = getTransactionEntry();
      if (record != null)
        return (REC) record;
  
      throw new NoSuchElementException("Direction: backward, last position was: " + current + ", range: " + beginRange + "-"
          + endRange);
    }
docs: Return the element at the current position and move backward the cursor to the previous position available.
  
  @return the previous record found, otherwise the NoSuchElementException exception is thrown when no more records are found.