Package au.gov.tas.dpiwe.mr.util

The au.gov.tas.dpiwe.mr.util package contains generally useful utility classes which, while being used to help code internal functions of the architecture, could be more widely applicable.

See:
          Description

Interface Summary
Dirtyable An object which can be dirtied.
Interval An interval represents a range of numbers.
Iterable That which can be iterated.
IterableCollection A collection which can be iterated over.
Mappable A Mappable object has a key which is suitable for use in a Map.
Named That which has a name.
TimedReference Analogous to a SoftReference, but with a capacity to be discarded upon reaching a certain age.
TypedNumber A number which carries metadata which determines how it is to be formatted.
 

Class Summary
ANSIColour Set Attribute Mode ESC [ <attr1> ; ... ; <attrn> m Sets multiple display attribute settings.
Batch A batch is a series of jobs.
ByteCharTranscoder ByteCharTranscoder is a class for transforming arbitrary binary data to character representations and back again.
ByteRange The ByteRange class represents a range of byte values.
Bytes This class contains static utility methods to read and write abstract data types to and from byte arrays.
Chain A chain is a series of jobs which are only ever executed in series.
Classes This class contains static utility methods to convert or construct objects from classes or answer questions about classes (e.g. the component type of a nested array.)
CloneableObject A wrapper which allows a serializable but uncloneable object to be cloned.
Collections This class contains static utility methods to create, compare and manipulate collections in ways not permitted by the standard Java utility classes.
Constructors This class contains static utility methods to convert constructors and their parameters to and from internal representations like Constructor and Class.
CountingStack A counting stack is a stack which keeps a hierarchy of counts.
CSVLineTokenizer Tokenizes lines of a CSV (comma-separated value) file.
DatePart This is a Date where only the day of month, month and year are significant.
DateRange This is a DateRange, where only the day of month, month and year are significant.
DeadCache A DeadCache is a HashMap to which no elements can be added.
DeadGroup A DeadGroup is a HashSet to which no elements can be added.
DoubleRange The DoubleRange class represents a range of double values.
FaultTolerantProperties Reads and writes properties without being a stickler over malformed unicode escapes.
FieldDesc A FieldDesc is a description of a field member of a class, as might be used to specify a serialized representation.
Fields This class contains static utility methods to convert fields to and from internal representations like Field and Class.
FloatRange The FloatRange class represents a range of float values.
InfiniteIterator An iterator which iterates over a single element- forever.
IntegerRange The IntegerRange class represents a range of integer values.
IterableAbstractList An AbstractList which implements the Iterable interface.
IterableAbstractMap An AbstractMap which implements the Iterable interface.
IterableAbstractSequentialList An AbstractSequentialList which implements the Iterable interface.
IterableAbstractSet An AbstractSet which implements the Iterable interface.
IterableArrayList An ArrayList which implements the Iterable interface.
IterableHashMap A HashMap which implements the Iterable interface.
IterableHashSet A HashSet which implements the Iterable interface.
IterableHashtable A Hashtable which implements the Iterable interface.
IterableLinkedHashMap A LinkedHashMap which implements the Iterable interface.
IterableLinkedHashSet A HashSet which implements the Iterable interface.
IterableLinkedList A LinkedList which implements the Iterable interface.
IterableTreeMap A TreeMap which implements the Iterable interface.
IterableTreeSet A TreeSet which implements the Iterable interface.
IterableVector A Vector which implements the Iterable interface.
ListComparator A comparator which orders lists on their contents.
Lists This class contains static utility methods to create, compare and manipulate lists in ways not permitted by the standard Java utility classes.
LongRange The LongRange class represents a range of long values.
Maps This class contains static utility methods to create, compare and manipulate maps in ways not permitted by the standard Java utility classes.
Messenger A utility class used to print logging messages at various levels.
MethodCall A method call is an invocation of a particular method on a particular object with a particular list of actual parameters.
MethodComparator A comparator which orders objects on their string representations.
Methods This class contains static utility methods to convert methods and their parameters to and from internal representations like Method and Class.
MIMEMap Loads a mapping between extensions (the only information available to Java on host filing systems) and MIME types.
MrAbstractCollection An AbstractCollection which uses a concrete collection as its basis.
MrAbstractList An AbstractList which uses a concrete list as its basis.
MrAbstractMap An AbstractMap which uses a concrete map as its basis.
MrAbstractSet An AbstractList which uses a concrete list as its basis.
MrNumber A number with metadata and presentation information.
MrRandomList An concrete implementation of an AbstractList which can be shuffled and unshuffled.
MrTimedReference An implementation of a TimedReference.
MutableBigDecimal The MutableBigDecimal class wraps a value of the type BigDecimal.
MutableBigInteger The MutableBigInteger class wraps a value of the type BigInteger.
MutableBoolean The MutableBoolean class wraps a value of the primitive type boolean in an object.
MutableByte The MutableByte class wraps a value of the primitive type byte in an object.
MutableDouble The MutableDouble class wraps a value of the primitive type double in an object.
MutableFloat The MutableFloat class wraps a value of the primitive type float in an object.
MutableInteger The MutableInteger class wraps a value of the primitive type int in an object.
MutableLong The MutableLong class wraps a value of the primitive type long in an object.
MutableMethod This is an emulation of Method which can be mutated.
MutableShort The MutableShort class wraps a value of the primitive type short in an object.
NullableBigDecimal This is an emulation of BigDecimal which can simulate a null reference.
NullableBigInteger This is an emulation of BigInteger which can simulate a null reference.
NullableByte This is an emulation of Byte which can simulate a null reference.
NullableCharacter This is an emulation of Character which can simulate a null reference.
NullableDate This is an emulation of Date which can simulate a null reference.
NullableDouble This is an emulation of Double which can simulate a null reference.
NullableFloat This is an emulation of Float which can simulate a null reference.
NullableInteger This is an emulation of Integer which can simulate a null reference.
NullableLong This is an emulation of Long which can simulate a null reference.
NullableNumber A wrapper around a Number or a null value.
NullableShort This is an emulation of Short which can simulate a null reference.
NullableString This is an emulation of String which can simulate a null reference.
Numbers This class contains static utility methods to manipulate numbers of the standard Java immutable kind, primitive numeric types, mutable numbers of the Mr Architecture kind and NullableNumbers.
PerThread A per thread object is a specialization of ThreadLocal.
PlusOneIterator An iterator which iterates over a single additional element.
ReversibleIterator An iterator which allows you to reverse its elements.
SerializableClass This is an emulation of Class which can be serialized.
SerializableConstructor This is an emulation of Constructor which can be serialized.
SerializableField This is an emulation of Field which can be serialized.
SerializableMethod This is an emulation of Method which can be serialized.
SerializationUtilities This class contains static utility methods to examine Java serialized streams and the serialization attributes of loaded classes.
SerializationUtilities.WireDictionaries Keeps state between SerializationUtilities calls.
Sets This class contains static utility methods to create, compare and manipulate sets in ways not permitted by the standard Java utility classes.
ShortRange The ShortRange class represents a range of short values.
Strings This class contains static utility methods to examine and manipulate Strings, StringBuffers and CharSequences in ways not permitted by the standard Java utility classes.
TaggedStack A tagged stack is a stack which can be rolled back to an earlier point in time.
TimePart This is a Date where only the hour, minute and second (including fractions) of day are significant.
ToStringComparator A comparator which orders objects on their string representations.
TriState A value which has three states, one positive, one negative and one neutral.
URLEncodedProperties Reads and writes properties using the MIME type "application/x-www-form-urlencoded".
 

Exception Summary
SerializationUtilities.ResetException A reset exception is thrown to indicate that the contents of dictionaries should be discarded.
 

Package au.gov.tas.dpiwe.mr.util Description

The au.gov.tas.dpiwe.mr.util package contains generally useful utility classes which, while being used to help code internal functions of the architecture, could be more widely applicable.

Collections, Lists, Sets, Maps, DeadCache, CloneableObject, Iterable, Named and Mappable add new facilities beyond those provided by Java's standard collection framework.

Batch and Chain provide low-level job scheduling to the Mr Architecture container.

Strings and ToStringComparator provide some generally useful facilties for manipulating objects and their string representations.

TimedReference and MrTimedReference extend Java's SoftReference to add the ability for LRU caches to decay over time.

The Mutable classes provide object wrappers which allow a normally immutable type (such as a primitive object wrapper) to be replaced with an emulation which is mutable. These classes are used in the Architecture to obtain call by reference semantics for primitive types.

The Nullable classes allow a null reference to be simulated by an object. This is required in Mr Architecture because it applies special meanings to null references in certain contexts. The use of these classes outside the architecture would also effectively allow code to interpret two classes of null values. For Nullable values, one of the following holds (but never both):

Further Nullable classes for types other than the primitive object wrappers can be generated using the NullableMaker tool.

Since:
Mr Architecture 1.0
Author:

Mr Architecture — an EJB 2.1 subset with relational and other extensions
by Kade Hansson <kade.hansson@dpiwe.tas.gov.au>

Concurrent collections framework: Copyright © 1994-2004 Doug Lea and Sun Microsystems, Inc., used under license.

All other code: Copyright © 2001-2004 Department of Primary Industries, Water and Environment (Tasmania.)

Mr Architecture is a not-for-profit project of DPIWE Tasmania. Its code is distributed under the terms of the Lesser GNU Public License (LGPL), either version 2.1 or a later version (at your option.) A copy should have been provided with this distribution, but a copy can be obtained on the web at http://www.gnu.org/licenses/lgpl.html or by writing to:

Free Software Foundation, Inc
59 Temple Place
Suite 330
Boston, MA 02111-1307
USA

Mr Architecture is supplied "as is" without any warranty whatsoever, and should therefore be considered to be without any implied warranty of merchantability or fitness for any particular purpose. See the Lesser GNU Public License (LGPL) for details.

Sun hereby grants Doug Lea a non-exclusive, worldwide, non-transferrable license to use, reproduce, create derivative works of, and distribute the Java software and derivative works thereof in source and binary forms as part of a larger work, and to sublicense the right to use, reproduce and distribute the Java Software and Doug Lea's derivative works as the part of larger works through multiple tiers of sublicensees provided that the following conditions are met:

[The concurrent collections framework] is provided "as is," without warranty of any kind. All express or implied conditions, representations or warranties, including any implied warranty of merchantability, fitness for a particular purpose or non-infringement, are hereby excluded. [Sun] and its licensors shall not be liable for any damages suffered by [a] licensee as a result of using, modifying or distributing the [concurrent collections framework] or its derivatives. In no event will [Sun] or its licensors be liable for any lost revenue, profit or data, or for direct, indirect, special, consequential, incidental or punitive damages, however caused and regardless of the theory of liability, arising out of the use of or inability to use [the concurrent collections framework], even if [Sun] has been advised of the possibility of such damages.

You acknowledge that [the concurrent collections framework] is not designed, licensed or intended for use in the design, construction, operation or maintenance of any nuclear facility.

See Also:
NullableMaker