content: // Copyright (c) 2011-present, Facebook, Inc.  All rights reserved.
  //  This source code is licensed under both the GPLv2 (found in the
  //  COPYING file in the root directory) and Apache 2.0 License
  //  (found in the LICENSE.Apache file in the root directory).
  
  package org.rocksdb;
  
  /**
   * File access pattern once a compaction has started
   */
  public enum AccessHint {
    NONE((byte)0x0),
    NORMAL((byte)0x1),
    SEQUENTIAL((byte)0x2),
    WILLNEED((byte)0x3);
  
    private final byte value;
  
    AccessHint(final byte value) {
      this.value = value;
    }
  
    /**
     * <p>Returns the byte value of the enumerations value.</p>
     *
     * @return byte representation
     */
    public byte getValue() {
      return value;
    }
  
    /**
     * <p>Get the AccessHint enumeration value by
     * passing the byte identifier to this method.</p>
     *
     * @param byteIdentifier of AccessHint.
     *
     * @return AccessHint instance.
     *
     * @throws IllegalArgumentException if the access hint for the byteIdentifier
     *     cannot be found
     */
    public static AccessHint getAccessHint(final byte byteIdentifier) {
      for (final AccessHint accessHint : AccessHint.values()) {
        if (accessHint.getValue() == byteIdentifier) {
          return accessHint;
        }
      }
  
      throw new IllegalArgumentException(
          "Illegal value provided for AccessHint.");
    }
  }
  