Solution for containment in Podius and terminology
All components compose a tree. Every component (except for main_components on level 1 has a parent, so called container. Every component may have any number of children collections.
Each property is owned by its owner component. Each component is part of exactly one ComponentCollection property, owned by the parent component (container).
To implement this, components have two special properties, "container" (a link to its parent component) and "container_collection_name" (the name of the parent property containing this component). These properties are hidden and managed automatically.
Aggregation versus Linkage
- ComponentCollection - aggregation; parent-sons
- VComponentCollection - virtual collection; linkage
- RComponentCollection - reverse collection; automatic linkage
- VComponent - single link (one parent, one address)