On 17/05/2017 14:22, Sven Van Caekenberghe wrote:
Of course that does not work, it is your job to do something similar that fits your use case. You certainly do not have to cache everything.
On the other had, if you only serialise part of an object, or just one reference (id, url, name) like in the example, how will you recreate the rest, unless you have access to it ? And that is what your version of #fromId: should do.
I can't understand how your 'to export from an image and to load from another' can possibly work, unless there is some other way of sharing the data.
But I probably don't understand you, I known nothing about Moose models.
What I would like to know is if there is a simple way to customize the export of only one or two of the variables. And let the other variables be exported as usual. I think I can do something like (I did not test but the spirit is here): myObject class>>stonAllInstVarNames ^ super stonAllInstVarNames \ { #variableToCustomise } myObject>>stonOn: stonWriter stonWriter writeObject: self streamMap: [ :dictionary | self class stonAllInstVarNames do: [ :each | (self instVarNamed: each) ifNotNil: [ :value | dictionary at: each asSymbol put: value ] ifNil: [ self stonShouldWriteNilInstVars ifTrue: [ dictionary at: each asSymbol put: nil ] ] ]. dictionary at: #variableToCustomize put: (self instVarNamed: #variableToCustomize) asString. ] myObject class>>fromSton: stonReader | obj | obj := super fromSton: stonReader. obj variableToCustomize: (UUID fromString: obj variableToCustomize) ^ obj But this imply to rewrite inside #stonOn: a part of the code used in the super stonOn: and I don't really like this in general. So I wanted to know if there was a hook to customize certain variables while exporting the other as usual. -- Cyril Ferlicot https://ferlicot.fr http://www.synectique.eu 2 rue Jacques Prévert 01, 59650 Villeneuve d'ascq France