Sun Jan  7 18:40:03 GMT 2007
- Cleaned up old files
- Added Makefile to replace ant build.xml
- Added tests
- Added GPL copyright notice

Mon Dec 27 17:54:43 GMT 2004
- Added log4j support

Sun Sep 12 18:38:24 BST 2004
- Better debugging of compiled expressions.
  toString() is now included in thrown exceptions.
- Fixed dynamic null handling in NestedClassProperty.
  lastObject was updated inside an if block, and
  hence was not being updated every time.
  Loop is also a little more logical now.

Mon Sep  6 00:17:22 BST 2004
- Temporarily changed access of methods in DynamicClassManager.
  Until packages are sorted out. The main problem is that classes
  from the same package but different classloaders cannot access
  protected methods. Making methods public works for now.

Fri Sep  3 07:25:11 GMT 2004
- Fixed compileSet to work with dynamic null handling.
  Fixes ticket #28. Basically it was creating the objects
  and traversing/setting correctly. BUT it wasn't setting
  the new object on the parent object, so a later get
  would just see null.

Tue Aug 31 22:41:21 BST 2004
- Fixed bug when calling setValue(null);
  The JVM instanceof instruction counts all nulls as false.
  The Java instanceof operator counts all nulls as true.
  This is really silly, and the cause of the bug!

Tue Aug 31 19:57:34 BST 2004
- Fixed bug where property type was being set to declaring class.
  OOPS!
- Fixed old (and minor) bug with isXXX accessors.
  Also moved code around a bit.
- Tidied SimpleClassProperty constructor.
  This probably needs more.

Tue Aug 31 17:50:24 BST 2004
- Removed spurious printlns
- Added main method to compiled properties to print key

Tue Aug 31 02:20:31 BST 2004
- PropertyManager, compiled properties.
  Properties should now be obtained using PropertyManager.getProperty().
  by default properties will be compiled into bytecode.
  Will document separately. If there are bugs, use --property-mode=runtime
  (and rm -rf precompiled)

Thu Aug  5 23:07:48 BST 2004
- Improved debugging for InvocationTargetException

Fri Jul 16 02:52:38 BST 2004
- A continuation of the below: class properties can employ one of
two null handling modes defined on creation. If dynamic null handling
is selected then:
	getValue on a null object returns null
	setValue on a null sub-property creates than sub-property and
	then performs the set operation.

The previous behaviour (before the modification described below) is used
if dynamic null handling is not set.

Sat Jul 10 00:14:09 BST 2004 (MH)
- Experimentally altered SimpleClassProperty to return null if a get on
a null field is attempted, rather than throwing an exception.
  This is useful for binding subentities that are
  yet to be chosen by the user, but as it is somewhat confusing it issues
  a warning.  Let me know if this breaks anything.

Thu Jul  8 20:00:08 BST 2004
- Improved debugging information for common exceptions

Thu Jul  8 03:43:18 BST 2004
- Support for isFoo() methods by default

Thu Jul  8 02:39:33 BST 2004
- Fixed off by one bug when checking cast validity

Thu Jul  8 02:18:23 BST 2004
- Fixed infinite loop bug.
  ascendingClass didn't ascent.

Wed Jul  7 01:05:18 GMT 2004
- Fixed bug where getDeclaringClass returned the wrong value for
  nested properties.
  It did return the deepest declaring class, should return the
  top level class.

Thu Jul  1 02:10:34 BST 2004
- Added getTarget to ClassProperty

Thu Jul  1 00:01:59 BST 2004
- Removed deprecated ClassInspector since it no longer compiles.
  Could be reinstated later to fit new model.
Sat Jun 19 15:14:30 BST 2004 (MH)
- Fixed another sillyness, ascendingClass was being assigned
  a value that should have gone to declaringClass.
Sat Jun 19 14:45:34 BST 2004
- Removed redundant property type argument in NestedClassProperty.
- Fixed real sillyness trying to call .getName() on null.

Mon Jun 14 11:47:42 BST 2004
- Rewrote everything. The package had evolved to a point
  where class names didn't make sense, and there were
  some silly inefficiencies/inconsistencies.
- Hopefully provides a better interface, eg. using static
  factory methods in place of constructors to allow
  caching.

Thu Apr  1 16:50:11 GMT 2004
- tweaked debug messages

Thu Apr  1 14:18:54 GMT 2004 (JS)
- Removed all ArrayList assumption

Wed Mar 24 17:42:30 GMT 2004 (JS)
- Changed BasicObjectProperty->ObjectProperty
  and ObjectProperty->SimpleObjectProperty to
  better reflect what's really going on.
- Simplified ClassInspector to make Properties immutable
- Moved method searching/verification into property
  constructors.
- Casting no longer needed -- automatically
  find castable typed properties.
- Other fixes/changes I've forgotten

Mon Mar 22 16:58:34 GMT 2004
- Allow casts in NestedProperty specifying strings.(MH)
  + Use ':' to separate properties to ease parsing.
  + e.g. "(org.trapdoor.bedsdirect.entities.Customer)Data:Forename
- Multiple bug fixes
  
Fri Mar 19 13:20:26 GMT 2004
- Added build.xml
- Fixed build.xml
