After my last post I went away to play in the code for a while.

Mostly to see what is necessary to isolate a minmal set of
classes related to Property handling.

What I found is:

1) Property is ubiquitous: every client class knows what package
   it lives in. As a planning point, I better think about keeping
   a Property class (or prepare to make a lot more changes and
   lose a few friends). 

2) PropertyList and PropertyListBuilder are used in fewer places.
   but they are used a lot. PropertyList is referenced 129 times  
   and PropertyListBuilder only 8 times. Most of these references 
   are in the Property class. If they can be hidden, the problem
   is bounded by the Property class.

One way to discover the scope of an API is to rename a class or a
package. Doing so breaks all of the compile units that depend on
the renamed class(es). Restoring the missing interfaces restores
the system if the restoration obeys the previous class contracts.

As I suspected, automated code generation for properties is
do-able. There are more than 17,000 lines in files generated
through Ant target: 'codegen'. Many of these are clients of the
Property class. Changes here can be localized to the XSL files
that generate the code.


Reply via email to