Johan Carlsson wrote:
Whoooha! I added PropertyManager to EmployX and it saves properties?
Is that a question? I'm not sure I can answer that.
Is this correct? - The objects are stored presistently in the Racks storage (BTree).
With the way a rack is set up by default, yes. You just say in the Rack what class it should store.
- The attributes
(and the propertysheet which is a attribute)
The properties in a propertysheet are stored as attributes. The propertysheet is a view on an instance's data.
are managed by the "PersistentAttributes" attribute provider.
The PersistentInternalAttributeProvider stores the attributes of an instance in a dict in the Rack. I had a conversation with Phillip Eby on this list a couple of months ago about exactly how PersistentInternalAttributeProviders and PersistentExternalAttributeProviders work. You should be able to find the messages in the list archives.
(Can I verify this by some kind of inspection?)
You can look through the ZODB from a python interactive prompt, and look inside a Rack's BTree to see how things are laid out. I think there are some HOT TO documents on looking in the ZODB from the python interactive prompt.
- If I would create Attribute Providers (with SkinScripts) they could redirect the storage to what ever storage i like.
Yes. You may want to set the Rack up differently, that is, so it doesn't store Dataskins persistently, but accesses them based on an id. Look at a Rack's tabs.
Hm, I realize that I'm still very confused and the only way out of that is "doing stuff" and see what happens.
I guess so :-) There's also reading the source code... which may or may not help clarify things. -- Steve Alexander Software Engineer Cat-Box limited http://www.cat-box.net