On 11.12.2011 19:50, Schwab,Wilhelm K wrote:
When I last looked at SmartReferenceStream, it did two things that
were bad:
(2) reshape code was placed in SRS itself, not in the class that is
changing shape. The thing that is being deserialized (which is when
problems become apparent) should be in charge of the change. It
simplifies both packaging (fewer loose methods to consider, and
reduced opportunity for name collisions) and it also helps with using
proxies for special circumstances.
I'm not sure I understand/agree with what you are saying.
What has been serialized is (almost) always an older version than what
you are loading into, in which case I can't really see how it can answer
the question "How do I turn into the current version?" correctly.
Maybe there needs to be a split? Serialized version knows how to install
itself as older versions (incase that's what you load into), while the
image takes care if version in memory is newer than serialized?
TBH, I also feel it's better to put the "import old versions"
functionality as methods on the class itself rather than have an
omnipotent materializer with special methods for installing all versions
of all known classes in the system, I mean, exactly in the
serializer/materializer do you intend to put such logic for custom user
classes?
Cheers,
Henry