Pod model
- podId
- containedObjects
- podvarDeclarations
- assembly-calls
podId
A UUID identifying the pod.
containedObjects
all the Java object graphs contained within the pod
podvarDeclarations
A podvar is a variable scoped to the pod. It gives a name to some property of some object within the pod.
assembly-calls
A list of calls to make in the assembly phase. So far, we have one type of assembly call, assignment. An assignment assigns one podvar to another. Something like:
PodId0.revisitUrl := PodId1.urlOfEvidence
See Pod XMLEncoder format for how this will look in XML.
Comments (2)
May 19, 2006
Scott Cytacki says:
Is a podvarDeclaration the same as a "slot" in the pod xml format?Is a podvarDeclaration the same as a "slot" in the pod xml format?
Sep 11, 2006
Scott Cytacki says:
After working with this model a bit. I really like to remove the assemblycalls. ...After working with this model a bit. I really like to remove the assembly-calls. Using these makes it difficult to parse the content without "assembling" it. This means the content is not declarative.
I can see two reasons for the assembly calls:
1. to deal with references to non-local objects. There needs to be a way to reference an object that is defined in another Pod. Assembly calls were probably the easiest way to make this work with XMLEncoder. There are other ways to do this that would be much easier to parse.
2. to make the pod more reusable. Because part of the pod is stored unassembled in theory it should be possible to reuse the unassembled pod, by just changing the assembly calls. But this level of reuse has not been used. To reuse an assembled pod it just needs to be cleaned of its assembled parts.
If we really want to maintain number 2, it would be possible to maintain this reuse in a declartive/templated way. However, even in this case it would be best to store a fully assembled pod in the curnit. The unassembled pod could be used by the authoring system and at publishing time the pod is fully assembled.