// Auto-generated: DO NOT EDIT

package net.jpountz.lz4;

import static net.jpountz.lz4.LZ4Constants.*;
import static net.jpountz.lz4.LZ4Utils.*;

import java.nio.ByteBuffer;
import java.util.Arrays;

import net.jpountz.lz4.LZ4Utils.Match;
import net.jpountz.util.ByteBufferUtils;
import net.jpountz.util.${type}Utils;

/**
 * High compression compressor.
 */
final class LZ4HCJava${type}Compressor extends LZ4Compressor {

  public static final LZ4Compressor INSTANCE = new LZ4HCJava${type}Compressor();

  private final int maxAttempts;
  final int compressionLevel;
  
  LZ4HCJava${type}Compressor() { this(DEFAULT_COMPRESSION_LEVEL); }
  LZ4HCJava${type}Compressor(int compressionLevel) {
    this.maxAttempts = 1<<(compressionLevel-1);
    this.compressionLevel = compressionLevel;
  }

@include{"hashtable.template"}
@include{"compress_hc.template"; storage = "byte[]"; utils = "${type}Utils"}
@include{"compress_hc.template"; storage = "ByteBuffer"; utils = "ByteBufferUtils"}
}
