Hello,

as I think we will find a consensus about the persistence of the mapping model at the end of
the day, I would like to proceed with the next steps.
In which components would you like to split the project?
As a start I would like to suggest some according to my initial code base:

++ The mapping model component ++
Java objects that basically represent the mapping xml file.

++ The exception component ++
The one you guys already started with.

++ The node type registration component ++
Registers the classes as node types while using the mapping model.

++ The class generation component ++
Generates classes out of given node types while using the mapping model
to know how the classes should be generated.

++ The persistence component ++
Would be a quite big component which cares about searching,
updating, inserting and so on.

o subcomponent: object to item converter
Converts an object structure starting with the given object to a node
structure while using the instructions from the mapping model.

o subcomponent: item to object converter
Converts a node structure starting with the given node to an object
structure while using the instructions from the mapping model.

o subcomponent: persistence manager
It calls the JCR functionality with the help of the above converters.
E.g. for "public void insert(Object anObject);" it
calls the object to item converter and creates the resulting
node out of "anObject". After that it is easy to insert this node with
the JCR functionality.
Or for "public Object findById(Object anId)" it uses the JCR
functionality to find the nodes. With the item to object converter it
should be possible to create the objects out of the nodes found
by the JCR functionality.

o subcomponent: atomic type converter / primary type converter
I will explain it later if I have more time.

o subcomponent: cache

Please keep in mind that I already submitted an initial code base
for the node type registration component, the object to item converter
and the atomic type converter so I would be glad if I could commit
these things.

Regards,

Sandro

Reply via email to