Package com.partnersoft.data

Generic data structures, algorithms, and libraries.

See:
          Description

Interface Summary
ArraySearchingAlgorithm An interface for generic array (indexed item, not necessarily an actual Java array object) searching algorithms.
ArraySearchingGopher<T> A gopher for searching algorithms is an pluggable adapter that adapts a generic array searching algorithm to a specific data structure.
ArraySortingAlgorithm An interface for generic array (indexed item, not necessarily an actual Java array object) sorting algorithms.
ArraySortingGopher A gopher for sorting algorithms is an pluggable adapter that adapts a generic array sorting algorithm to a specific data structure.
DataRecordFetcher Implements the data fetching portion of the DataRecordSource framework.
IdentifiableSet<T extends Identifiable>  
MultiIterator<T> An iterator that traverses a set of sub-enumerations in some manner.
ObjectMangler This interface is really a marker subinterface of ObjectTransform.
ObjectNamer Superclass for transforms that name things based on their properties or what-have-you.
ObjectTransform Transforms one object into another.
SearchingAlgorithm An interface for generic array (indexed item, not necessarily an actual Java array object) searching algorithms.
SearchingGopher Generic adapter to present array-like structures to instances of SearchingAlgorithm for searching.
SortingAlgorithm An interface for generic array (indexed item, not necessarily an actual Java array object) sorting algorithms.
SortingGopher Generic adapter to present array-like structures to instances of SortingAlgorithm for sorting.
 

Class Summary
AbstractDynamicArray<T> A DynamicArray of Objects.
AbstractDynamicComparableArray<T extends Comparable> A managed, dynamically allocated array of Comparables.
ArrayBinarySearch A generic binary search.
ArrayIterator<T> Simple implementation of an Iterator for an array.
ArrayLinearSearch A generic full-scan search.
ArrayQuickSort A generic quicksort.
ArraySelectionSort A generic selection sort.
ArraySortingLib Routines to aid sorting arrays.
Base64 Encodes and decodes to and from Base64 notation.
Base64.InputStream  
Base64.OutputStream  
BinarySearch A generic binary search algorithm.
BlockingQueue This is essentially just a synchronized FIFO queue which blocks input when the queue is full (with a configurable "full" size parameter) and output when the queue is empty.
ByteBuffer A fast byte array buffer with public access to contents.
ByteLib A function library for bit-flipping, endianness conversion, and other routine low-level annoyances.
ByteSize An immutable measure that allows you to specify a byte size in a variety of ways and get it back in whatever units you want.
CaseInsensitiveStringComparator A comparator for strings that cares not what stupid case you have.
CharBuffer A fast char array buffer with public access to contents.
ConversionLib Functions for converting simple data from one type to another.
CountingBag A HashMap which can hold multiple copies of objects.
DataBuffer Abstract superclass for fast, unsafe arrays or buffers of things that need to grow.
DataConstants Constants used by the data package.
DataLib Some handy functions for messing with data.
DataRecordSource A source for data records, represented as an iteration of Namings.
Date A representation of a date as day, month, and year.
DateAndTime A representation of a date and time as day, month, year, and time of day.
DelegatingIterator<T> A delegating wrapper implementation of Iterator.
DoubleBuffer A fast double array buffer with public access to contents.
Duration A representation of a length of time.
DynamicArray Generic superclass for direct-access arrays with decoupled content size and actual size.
DynamicByteArray A managed, dynamically sized array of bytes with many I/O functions.
DynamicCharArray A managed, dynamically-allocated array of chars.
DynamicDoubleArray A managed, dynamically allocated array of double.
DynamicFloatArray A managed, dynamically allocated array of floats.
DynamicIntArray A managed, dynamically allocated array of ints.
DynamicLongArray A managed, dynamically allocated array of longs.
DynamicObjectArray A managed, dynamically allocated array of Objects.
DynamicShortArray A DynamicArray of shorts.
DynamicStringArray A managed, dynamically allocated array of Strings.
EmptyIterable<T> A cheap implementation of Iterable for use when you know you only have nothing to iterate.
EmptyIterator<T> An Iterator for nothing.
FloatBuffer A fast float array buffer with public access to contents.
GridContainer<T> Grid based container.
GuidLib  
HistorySet This data structure maintains a set of unique objects, sorted by how long ago they were added to the set.
ImmutableArrayList<T> A handy adapter that exposes an array as a read-only List.
IndexedIdentifiableSet<E extends Identifiable>  
IntBuffer A fast int array buffer with public access to contents.
IntrospectiveTemplate A fast and simple templating tool based on PathedIntrospector.
LabelledList An ordered (not necessarily sorted!) list of labelled values.
LeakyList<T> A list with a fixed maximum size; entries "leak out" by being removed from the front.
LinearSearch A generic linear full-scan search.
LongBuffer A fast long array buffer with public access to contents.
MagicCookie From the Hacker's Map/Jargon file:
MapEntry<K,V> A simple, read-only implementation of Map.Entry.
MathLib Math and number functions.
MultiTransform Applies a list of subtransforms to the given object.
NamedBlob Class for manipulating a structure of a byte[] Blob, String name, and integer length of the Blob.
NamedGoedels A named list of numbers, or a numbered list of names, depending on how you look at it.
NamedLists<T> A Naming that keeps track of lists of things - it autocreates ArrayLists for entries when you use the addToList(name, value) method.
NamedNameSets A Naming that keeps track of sets of names - it autocreates NameSets for entries when you use the addToSet(name, value) method.
NamedThingy A string associated with an object.
Namer An ObjectTransform that generates a String name from a source object, using a string template.
NameSet A Set of case-insensitive Strings.
Naming<V> An auto-sorted, string-indexed association.
NumberedNames A numbered list of names, or a named list of numbers, depending on how you look at it.
NumericPrefixComparator Compares objects first by any numeric prefix, then alphabetically.
NumericPrefixComparer Compares objects first by any numeric prefix, then alphabetically.
ObjectBuffer A fast object array buffer with public access to contents.
ObjectGoedels A two-way mapping of objects to numbers.
ObjectLib Functions for dealing with objects.
OneToOneMapping<T,U> A fast one-to-one relationship, represented as two mappings.
OneToOneNameMapping A case-insensitive version of OneToOneMapping.
PadWithZeros Pads a string with zeros.
Path A general solution to the problem of dealing with representing a path to a node in a hierarchy.
PathBuilder A builder class for Path.
PathedIntrospector A tool that simplifies the use of Java Introspection to get and put object properties and run methods.
PathedTree<T> A Path-based tree structure that can contain data.
PathLib Library methods for dealing with Paths and string representations of Paths.
QuickSort A generic quicksort.
RandomGUID  
RandomLib Various games of chance.
SearchingLib Functions for searching array-like structures via SearchingAlgorithms.
SelectionSort A generic selection sort.
SerialMultiIterator<T> An iterator that traverses an ordered set of sub-enumerations.
ShortBuffer A fast short array buffer with public access to contents.
SingleIterable<T> A cheap implementation of Iterable for use when you know you only have one object to iterate.
SingleIterator<T> Iterates a single object.
SortingLib Functions to sort random-access, array-like objects.
SplittingNamer A transform that generates a String name for an object by first generating a group name, then then looking up another transform in a Map, then running that.
StandardMapEntry An standard map entry.
StringDataBuffer A fast string array buffer with public access to contents.
StringLib General-purpose string functions.
StringTable A reasonably compact representation of a bunch of homogenous records with string fields.
TemplateLib A method library for templating.
Time A representation of a time, independent of date, as hour, minute, and second.
TimeConstants  
TimeLib Have you ever noticed that in most TV/movie sci-fi, time travel virtually assures a crappy plot?
WeakHashSet<T> A set of WeakReferences, useful for keeping a collection of things without preventing their garbage collection.
 

Package com.partnersoft.data Description

Generic data structures, algorithms, and libraries.

This package has a variety of tools to help with storing, managing, massaging, and mangling data. Think data-structure, not data-access or data-base. It is designed to be low-level and application-neutral, and cannot depend on any Partner package other than com.partnersoft.core and the standard Java API.

It includes some extensions of the Java Collections API, primarily centered around NameSet and com.partnersoft.data.OrderedNaming, which are more humane, case-insensitive alternatives to the usual Set and Map implementations.

It also contains several function libraries (*Lib) which provide extensions to the basic methods provided by the Java API. Of these, ConversionLib is probably the most useful and important; it is an all-purpose swiss army knife for converting various types to one another.

Generic sorting and searching algorithms are provided, so designed to be useful for anything from a small in-memory array to a multi-gigabyte file on disk.

A looser, high-performance alternative to ArrayList is provided in the DynamicArray hierarchy. These collections store primitives directly, without wrappers, and provide direct, public access to their internal representation. Use them instead of ArrayList whenever you really need to speed up your code or have tight control over the behavior of your collections.

Also provided are some cleaner implementations of Date, Time, and DateAndTime, without all the luggage of the Java API version (Date).

Copyright 1997-2006 Partner Software, Inc.

Author:
Paul Reavis, Russell Cagle