Start page / Advanced topics / Server-side release / Specific release / Parent chain recursive and dependent release
Parent chain recursive and dependent release
For calling AccessUtil.release(...) the following parameters were set:
releaseStartNode: Folder 1
ensureAccessibility: true
boolean recursive: true
DependentReleaseType:
DEPENDENT_RELEASE_NEW_AND_CHANGED||DEPENDENT_RELEASE_NEW_ONLY
The selected start node for the release is the “Folder 1” menu level.
Ensure accessibility (parent chain), release recursively and dependently: The most comprehensive release is executed if all release options are combined with one another. In this case, all never-before released elements of the parent chain as well as elements beneath the start node are released. In addition, the dependent objects of all nodes affected by the release process are released; the entire parent chain is examined and released there as well. The recursive release has no effect on the dependent objects, unlike the release of the parent chain. Based on the example, it is clear that the release has an effect on nearly all objects shown – only “Page 2” is not affected:
- At the release start point “Folder 1”, the option recursive is evaluated. The recursive release has an effect solely on the child elements of the release start point. In the example, through the option, the child elements “Ref 1”, “Folder 2” and “Ref 2” are released.
- All outgoing references of the released objects are released. In the example, this is the objects “Pict 4” (via the reference within the menu level “Folder 1”), “Page 1” (via the page reference “Ref 1”), “Pict 2” (via the reference within the menu level “Folder 2”)
- From these released objects, the outgoing edges are again examined and released. In the example, these are the media “Pict 1” and “Pict 3” (via the reference within page “Page 1”).
- The complete parent chains are examined for all released elements, and all never-released parent nodes are released. In the example, this is the “SS Folder” (parent element start node), “PS Folder” (parent element “Page 1”), “MS Folder 2” (parent element “Pict 1” and “Pict 2”), “MS Folder 3” (parent element “Pict 4”).
- Now, the dependent objects of the released parent nodes are released. In the example, this is “MS Folder 1” (via the reference in “PS Folder”). Differently than with the release option ensureAccessibility, “MS Folder 1” is then also released if it was only “changed”, in other words, was already released once.
All outgoing references for the dependent release are only completely taken into account in one direction. If all dependent objects are to be contained in the release process, the release thus has to be carried out in a certain order (see Order for the release). |