# Package org.apache.lucene.util

Some utility classes.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  Attribute | Base interface for attributes.
  AttributeReflector | This interface is used to reflect contents of `AttributeSource` or `AttributeImpl`.
  Bits | Interface for Bitset-like structures.
  BytesRefIterator | A simple iterator interface for `BytesRef` iteration.
  MutableBits | Extension of Bits for live documents.
  NamedSPILoader.NamedSPI | Interface to support `NamedSPILoader.lookup(String)` by name.
  RollingBuffer.Resettable | Implement to reset an instance

- Class Summary
  Class | Description
  --- | ---
  ArrayUtil | Methods for manipulating arrays.
  AttributeImpl | Base class for Attributes that can be added to a `AttributeSource`.
  AttributeSource | An AttributeSource contains a list of different `AttributeImpl`s, and methods to add and get them.
  AttributeSource.AttributeFactory | An AttributeFactory creates instances of `AttributeImpl`s.
  AttributeSource.State | This class holds the state of an AttributeSource.
  Bits.MatchAllBits | Bits impl of the specified length with all bits set.
  Bits.MatchNoBits | Bits impl of the specified length with no bits set.
  BitUtil | A variety of high efficiency bit twiddling routines.
  ByteBlockPool | Class that Posting and PostingVector use to write byte streams into shared fixed-size byte[] arrays.
  ByteBlockPool.Allocator | Abstract class for allocating and freeing byte blocks.
  ByteBlockPool.DirectAllocator | A simple `ByteBlockPool.Allocator` that never recycles.
  ByteBlockPool.DirectTrackingAllocator | A simple `ByteBlockPool.Allocator` that never recycles, but tracks how much total RAM is in use.
  BytesRef | Represents byte[], as a slice (offset + length) into an existing byte[].
  BytesRefHash | `BytesRefHash` is a special purpose hash-map like data-structure optimized for `BytesRef` instances.
  BytesRefHash.BytesStartArray | Manages allocation of the per-term addresses.
  BytesRefHash.DirectBytesStartArray | A simple `BytesRefHash.BytesStartArray` that tracks memory allocation using a private `AtomicLong` instance.
  CharsRef | Represents char[], as a slice (offset + length) into an existing char[].
  CloseableThreadLocal<T> | Java's builtin ThreadLocal has a serious flaw: it can take an arbitrarily long amount of time to dereference the things you had stored in it, even once the ThreadLocal instance itself is no longer referenced.
  CollectionUtil | Methods for manipulating (sorting) collections.
  CommandLineUtil | Class containing some useful methods used by command line tools
  Constants | Some useful constants.
  Counter | Simple counter class
  DocIdBitSet | Simple DocIdSet and DocIdSetIterator backed by a BitSet
  DoubleBarrelLRUCache<K extends DoubleBarrelLRUCache.CloneableKey,V> | Simple concurrent LRU cache, using a "double barrel" approach where two ConcurrentHashMaps record entries.
  DoubleBarrelLRUCache.CloneableKey | Object providing clone(); the key class must subclass this.
  FieldCacheSanityChecker | Provides methods for sanity checking that entries in the FieldCache are not wasteful or inconsistent.
  FieldCacheSanityChecker.Insanity | Simple container for a collection of related CacheEntry objects that in conjunction with each other represent some "insane" usage of the FieldCache.
  FieldCacheSanityChecker.InsanityType | An Enumeration of the different types of "insane" behavior that may be detected in a FieldCache.
  FilterIterator<T> | An `Iterator` implementation that filters elements with a boolean predicate.
  FixedBitSet | BitSet of fixed length (numBits), backed by accessible (`FixedBitSet.getBits()`) long[], accessed with an int index, implementing Bits and DocIdSet.
  IndexableBinaryStringTools | Deprecated Implement `TermToBytesRefAttribute` and store bytes directly instead.
  InfoStream | Debugging API for Lucene classes such as `IndexWriter` and `SegmentInfos`.
  IntBlockPool | A pool for int blocks similar to `ByteBlockPool`
  IntBlockPool.Allocator | Abstract class for allocating and freeing int blocks.
  IntBlockPool.DirectAllocator | A simple `IntBlockPool.Allocator` that never recycles.
  IntBlockPool.SliceReader | A `IntBlockPool.SliceReader` that can read int slices written by a `IntBlockPool.SliceWriter`
  IntBlockPool.SliceWriter | A `IntBlockPool.SliceWriter` that allows to write multiple integer slices into a given `IntBlockPool`.
  IntsRef | Represents int[], as a slice (offset + length) into an existing int[].
  IOUtils | This class emulates the new Java 7 "Try-With-Resources" statement.
  LongsRef | Represents long[], as a slice (offset + length) into an existing long[].
  MapOfSets<K,V> | Helper class for keeping Lists of Objects associated with keys.
  MathUtil | Math static utility methods.
  NamedSPILoader<S extends NamedSPILoader.NamedSPI> | Helper class for loading named SPIs from classpath (e.g.
  NamedThreadFactory | A default `ThreadFactory` implementation that accepts the name prefix of the created threads as a constructor argument.
  NumericUtils | This is a helper class to generate prefix-encoded representations for numerical values and supplies converters to represent float/double values as sortable integers/longs.
  NumericUtils.IntRangeBuilder | Callback for `NumericUtils.splitIntRange(org.apache.lucene.util.NumericUtils.IntRangeBuilder, int, int, int)`.
  NumericUtils.LongRangeBuilder | Callback for `NumericUtils.splitLongRange(org.apache.lucene.util.NumericUtils.LongRangeBuilder, int, long, long)`.
  OpenBitSet | An "open" BitSet implementation that allows direct access to the array of words storing the bits.
  OpenBitSetDISI | OpenBitSet with added methods to bulk-update the bits from a `DocIdSetIterator`.
  OpenBitSetIterator | An iterator to iterate over set bits in an OpenBitSet.
  PagedBytes | Represents a logical byte[] as a series of pages.
  PagedBytes.Reader | Provides methods to read BytesRefs from a frozen PagedBytes.
  PrintStreamInfoStream | InfoStream implementation over a `PrintStream` such as `System.out`.
  PriorityQueue<T> | A PriorityQueue maintains a partial ordering of its elements such that the least element can always be found in constant time.
  RamUsageEstimator | Estimates the size (memory representation) of Java objects.
  RecyclingByteBlockAllocator | A `ByteBlockPool.Allocator` implementation that recycles unused byte blocks in a buffer and reuses them in subsequent calls to `RecyclingByteBlockAllocator.getByteBlock()`.
  RecyclingIntBlockAllocator | A `IntBlockPool.Allocator` implementation that recycles unused int blocks in a buffer and reuses them in subsequent calls to `RecyclingIntBlockAllocator.getIntBlock()`.
  RollingBuffer<T extends RollingBuffer.Resettable> | Acts like forever growing T[], but internally uses a circular buffer to reuse instances of T.
  SentinelIntSet | A native int set where one value is reserved to mean "EMPTY"
  SetOnce<T> | A convenient class which offers a semi-immutable object wrapper implementation which allows one to set the value of an object exactly once, and retrieve it many times.
  SmallFloat | Floating point numbers smaller than 32 bits.
  SorterTemplate | This class was inspired by CGLIB, but provides a better QuickSort algorithm without additional InsertionSort at the end.
  SPIClassIterator<S> | Helper class for loading SPI classes from classpath (META-INF files).
  StringHelper | Methods for manipulating strings.
  ToStringUtils | Helper methods to ease implementing `Object.toString()`.
  UnicodeUtil | Class to encode java's UTF16 char[] into UTF8 byte[] without always allocating a new byte[] as String.getBytes("UTF-8") does.
  VirtualMethod<C> | A utility for keeping backwards compatibility on previously abstract methods (or similar replacements).
  WeakIdentityMap<K,V> | Implements a combination of `WeakHashMap` and `IdentityHashMap`.

- Enum Summary
  Enum | Description
  --- | ---
  RamUsageEstimator.JvmFeature | JVM diagnostic features.
  Version | Use by certain classes to match version compatibility across releases of Lucene.

- Exception Summary
  Exception | Description
  --- | ---
  BytesRefHash.MaxBytesLengthExceededException | Thrown if a `BytesRef` exceeds the `BytesRefHash` limit of `ByteBlockPool.BYTE_BLOCK_SIZE`-2.
  SetOnce.AlreadySetException | Thrown when `SetOnce.set(Object)` is called more than once.
  ThreadInterruptedException | Thrown by lucene on detecting that Thread.interrupt() had been called.

## Package org.apache.lucene.util Description

Some utility classes.

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.