# Package com.complexible.common.base

package com.complexible.common.base
This package defines a set of classes primarily working with Java core objects or other basic operations. Many are a supplement to what is found in Guava.

- Related Packages
  Package
  Description
  com.complexible.common
- Class
  Description
  AbstractAutoDisposable
  ActiveResources
  ArbitrarySortedMapComparator<K extends Comparable<? super K>,V extends Comparable<? super V>>
  Comparator to order sorted maps.
  AtomicState<S extends Enum<S>>
  Represents a mutable state that can be updated exclusively through `AtomicState.beginTransitionFrom(Enum[])` and `AtomicState.endTransition()` calls.
  AutoCloser
  This class is an equivalent of Guava's `Closer`, that supports `AutoCloseable`s.
  AutoDisposable
  A special kind of `Disposable` that keeps track of references to it and disposes the object automatically when there are no references left.
  Bool
  Three-valued (true, false, unknown) boolean type.
  Change<E extends Enum & ChangeType,T>
  Class which represents a logical change to a resource.
  ChangeList<E extends Enum & ChangeType,T>
  An ordered list of `changes` to some resource.
  ChangeType
  The type of a `Change`.
  CloseableIterator<T>
  An `Iterator` which can be `closed`.
  CloseableIterator.AbstractCloseableIterator<T>
  CloseableIterator.DelegatingCloseableIterator<T>
  CloseableIterator.EmptyCloseableIterator<T>
  Copyable<T extends Copyable<T>>
  Interface for an object that can be copied.
  Copyables
  Utility methods for copying collections of `Copyable` objects.
  DataKey<E>
  DataMap
  An object that maps keys to values in a type-safe manner.
  Dates
  Utility methods for working with the Date object
  DateTime
  Immutable representation of date time.
  Disposable
  A `Disposable` is an object data that can be disposed once it is not needed anymore.
  Disposables
  Disposer
  Utility for tracking and mass `Disposable.dispose()` of `Disposable` resources.
  Duration
  Immutable representation of a duration.
  Durations
  Exceptions
  FormattingResourceBundle
  Simple extension to `ResourceBundle` that handles message formatting via `MessageFormat` for values in the resource bundle.
  Functional
  Functional utilities
  HandlerBackedIterator<T>
  An adapter for converting push-based data processing (aka handler-based) to pull-based data processing (aka iterator-based).
  HandlerBackedIterator.DataProducer<T>
  HandlerBackedIterator.ProducerFinished
  Can be thrown out of `Consumer.accept(Object)` to indicate that the `producer` must stop generating data.
  ImmutableCollectors
  Instrumentor
  Simple -javaagent compatible instrumentor.
  IOFunction<T,R>
  Function which performs I/O which declares throwing IOException
  Maths
  Math-related utils
  Memory
  Utility class for memory related information.
  Numbers
  Objects2
  Object utilities not provided by `Objects`.
  Option<V>
  Represents a configuration option.
  OptionFunction
  Options
  OSUtil
  OSUtil.NativeMemoryUsage
  Native memory usage info collected from OS.
  Pair<K1,K2>
  Tuple with 2 elements
  Progress
  Read-Only interface for progress info.
  Progress.Default
  Immutable default implementation of a progress
  ProgressMonitor
  A multi-thread safe progress monitor implementation that prints progress percent and elapsed time at specified percent increments.
  ProgressMonitor.Builder
  Builder class for a customizable progress monitor
  ProgressMonitor.DefaultProgressFormatter
  ProgressMonitor.DelegatingProgressMonitor
  ProgressMonitor.ProgressFormatter
  ProgressMonitor.ReportingProgressMonitor
  Chain more than one monitor / reporter
  ProgressReporter
  Interface for progress reporting
  PropertiesBuilder
  Simple builder class for creating instances of `Properties`
  Reflect
  A series of basic Reflect based utility functions.
  ReportInterval
  A utility class to help with reporting progress at predefined intervals.
  ReportIntervalCounter
  A report interval extension that also handles tracking progress.
  Resources2
  SizeFunction<T>
  An interface for computing (typically approximate) size of a specific kind of object.
  SizeFunctions
  Implementation of size computation for commonly used object types.
  Sorter<T>
  This class performs merge sort over an array but allocates the additional array used in merge sort upfront so if the arrays of same size will be sorted repeatedly this sorter can be reused to minimize garbage collection with the price of having memory for extra array always being used.
  Sorter.QuickSorter<T>
  Sorter implementation for QuickSort.
  Streams
  Utility for streams
  Streams.CheckedBiConsumer<U,T>
  Streams.CheckedBiFunction<In1,In2,Out>
  Streams.CheckedConsumer<T>
  Streams.CheckedFunction<In,Out>
  Streams.CheckedPredicate<T>
  Streams.CheckedRunnable
  Streams.CheckedSupplier<Out>
  Streams.UncheckedException
  Exception indicating that Checked* threw an exception and the default handler was used
  Strings2
  String utilities not provided by `Strings`.
  SystemUtil
  Utility methods for working with `System`, particularly safe, default value supported lookups into `System.getProperty(java.lang.String)` and other OS/system level calls.