See also: ValueObject, ValueObjectFramework JValue is an open-source framework for ValueObject''''''s in Java. (JavaValue is just JValue's Wiki-friendly name.) Please visit http://www.jvalue.org and take a look. Feedback and contributions are welcome! --DirkRiehle ---- Could you put the Javadoc documentation up on the web site? Some example code using the framework would be great as well. --NatPryce ''Javadoc is now on the web for the most recent version. For code examples, I can only offer the unit tests. All other stuff is proprietary (at this point in time :-))'' ---- Dirk, It looks like you've put a tremendous amount of work into this. I've done this using flyweights with a factory (usually burying the factory inside the flyweight class as a static method). What advantages does the framework have over my hand-rolled classes? I'm looking for the glossy feature sheet :) --WayneConrad ''JValue lets you solve the problem of having (possibly shared) immutable objects in a consistent way. You can always do it by hand, if the framework does not suit you, but by using the framework you avoid lots of redundant code. Moreover, you also get proven code and avoid accidental mistakes.'' ''For the value objects themselves, you get lots of optimizations, for example the ProtoValue concept to avoid unnecessary object creations.'' ''For the value management, you get different value managers that implement different strategies for managing the value objects--depending on the most common uses of the type of value object. One day I hope we will have adaptive value managers that track runtime usage of value objects and manage them accordingly.'' ''You also get value type information for use in GUIs and a consistent way of accessing the value types and hence value objects.'' ''Admittedly, a lot more code needs to written to provide all this in its full extent, but that's why I made JValue open-source. I will slowly migrate my extensions into JValue and hope others will provide there enhancements to the value objects and to value management schemes too.'' Thank you for the detailed cut-sheet, and for the great explanation you wrote in ProtoValue. I'm going to look at the code in light of what I've learned before I comment further. --WayneConrad