## Package org.biojava.utils

Miscellaneous utility classes used by other BioJava components.

See:
Description

Interface Summary
ActivityListener: Interface for object which monitor long-running activities.
Changeable: This is a flag interface that defines the common add/remove listener methods for classes and interfaces that wish to indicate that they are sources of ChangeEvents.
ChangeHub: Interface implemented by ChangeHubs, i.e.
ChangeListener: Interface for objects which listen to ChangeEvents.
Commitable: Implementations of `Commitable` support atomic changes from one known state to another via commit/rollback semantics.
ListTools.Mapper: Maps one object to another.
ParseErrorListener: Listener for a ParseErrorEvent.
ParseErrorSource: Source for a ParseErrorEvent.
ThreadPool: `ThreadPool` specifies basic thread-pooling operations such that third-party implementations may be used without requiring changes to BioJava.

Class Summary
AbstractChangeable: Useful base-class for objects implementing Changeable
BeanAsMap
ChangeAdapter: This is a ChangeListener that ignores everything.
ChangeEvent: Event which encapsulates a change in any mutable BioJava object.
ChangeForwarder: This is a ChangeListener that is designed to adapt events of one type from one source to events of another type emitted by another source.
ChangeForwarder.Retyper: A ChangeForwarder that systematically uses a given type and wraps the old event.
ChangeListener.AlwaysVetoListener: An implementation that always vetoes everything.
ChangeListener.ChangeEventRecorder: A listener that remembers the ChangeEvent of the last change.
ChangeListener.LoggingListener: A listener that writes information about the event stream to a PrintStream.
ChangeSupport: A utility class to provide management for informing ChangeListeners of ChangeEvents.
ChangeType: Class for all constants which are used to indicate change types.
ClassTools: Utility methods for manipulating class objects and resources.
Constants: Some usefull constants for working with binary files.
ExecRunner: Makes running external executables easier, optionally under a watched thread.
FileAsList: `FileAsList` creates a writable `List` implementation backed by a random access file.
IndexedChangeHub: implements Changeable support with a ChangeHub that stores ChangeListener by key.
JDBCConnectionPool: Really simple connection pool for JDBC databases.
JDBCPooledDataSource: Returns a DataSource that implements connection pooling Uses Jakarta Commons DBCP and Pool packages.
ListTools
ListTools.Doublet
ListTools.SeriesList: A list that represents a series of values.
ListTools.Triplet
MergingIterator
MergingSet
ObjectUtil: utility methods for implementing the equals() and hashCode() methods of Objects.
OverlayMap: Overlap one map onto another.
ParseErrorEvent: Event which signals a bad line when parsing a record.
ProcessTools: Deprecated. preferable to use org.biojava.utils.ExecRunner or the org.biojava.utils.process package.
RepeatedCharSequence
Services: Utility methods for handling META-INF/services files
SimpleThreadPool: `SimpleThreadPool` is a basic implementation of `ThreadPool` for use where we don't wish to introduce a dependency on a 3rd-party pool.
SingletonList
SmallMap: Lightweight implementation of Map which uses little memory to store a small number of mappings, at the expense of scalability.
SmallSet: Lightweight implementation of Set which uses little memory to store a small number of items, at the expense of scalability.
StaticMemberPlaceHolder
TriState: Class that represents the tristate values possible in a logical operation: true, false and indeterminate.
TypedProperties: a sub-class of java.util.Properties that provides the same constructors, adds two convenient load methods to load the properties from files and, most importantly, adds getPropertyAsXXX() methods to get a property as an object of type XXX.
Unchangeable: This is a utility implementation of Changeable that doesn't fire any events or keep references to any listeners.

Exception Summary
ChangeVetoException: Exception which is thrown when a ChangeListener does not wish a change to take place.
CommitFailure
ParserException: Exception thrown when an error occurs in document parsing.
ProcessTimeoutException: Exception which is thrown if a child process managed by `ProcessTools` exceeds a specified time limit.

Error Summary
AssertionFailure: An unchecked exception representing an Assertion failure.

## Package org.biojava.utils Description

Miscellaneous utility classes used by other BioJava components.