Share

Time & Money Library

File Release Notes and Changelog

Release Name: v0.3.1 (pre-alpha)

Notes:
Target Users for Release 0.3 (and 0.3.1)
-----------------------------
Release 0.3 of this code is intended for use on projects by developers who are 
interested in helping the development of the library and are prepared to deal with 
the immaturity of the code and design. Not only will defects in the code be fixed 
in later versions, there will be radical changes to the design, based on the
feedback of these early users. These design changes will not all be backward
compatible.
With that caveat, the library in its current state should provide value.
In release 0.3, the time package is becoming fairly usable. Money is rougher, but
the basic data structure of the Money object is unlikely to change much.

Usage Examples
--------------
This release provides a few simple usage examples (see example.insuranceRates.*).
These are the first of many. They will become an important way of explaining use of the 
library, as well as a means of capturing motivating scenarios for new development.

Controlling Money Calculations
------------------------------
Release 0.3 begins to provide control over money calculations. The Ratio class,
Proration class, and some of the Money methods take arguments for the number
of decimal places of precision for intermediate calculations and the rounding
rule for the calculation. If you have an immediate need for carefully controlled 
money calculations, please contact eric@domainlanguage.com.

More Interval Functionality
---------------------------
Interval (renamed from ComparableInterval) now supports intersections, and relative complements.
The new IntervalKeyedMap allows lookup of values that apply to ranges rather than individual keys.

DateSpecification
-----------------
Release 0.3 introduces DateSpecification, in a preliminary form, allowing declaration of 
holidays and other recurring dates or constraints on dates.

Java Version Requirement: 1.4
-----------------------------
Currency:  The money package depends on the java.util.Currency class. This dependency
could be eliminated by adding a Currency class to the library. For now, it seems
simpler to use what the Sun provided.

assert: Many methods state preconditions using Java assert statement, which is ignored,
by default, in 1.4, but will not compile in earlier Java versions. To build without errors,
set all the jdk compliance levels to 1.4. To compile for earlier versions, comment
out the assert statements. The code will still behave correctly.


Changes: Point bug-fixes to CalendarInterval and CalendarDate