## Package org.apache.lucene.util

Some utility classes.

See:
Description

Interface Summary
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
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
RamUsageEstimator.JvmFeature: JVM diagnostic features.
Version: Use by certain classes to match version compatibility across releases of Lucene.

Exception Summary
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.