To simplify the syntax of hierarchical transformations, remove the first three parameters $H,Q,I$ of the hierarchical transformations ancestors, descendants, traverse and of rolluprecursive and introduce a new system query option $hierarchy=$H,Q,I$. The third parameter $I$ can be omitted if it equals the @Aggregation.RecursiveHierarchy#Q/NodeProperty.
Ensures there is no "switch" in the hierarchy between descendants and a subsequent ancestors.
$hierarchy=SalesOrgHierarchy could imply hierarchy collection = requested resource.
If there is only one Aggregation.RecursiveHierarchy annotation (perhaps even unqualified?) on the requested resource, $hierarchy need not be specified at all.
Without the redundancy, it seems justifiable to allow full-blown hierarchical transformations as optional parameters of rolluprecursive (#86):
If the requested entity set is Sales instead of SalesOrganizations, however, the hierarchical transformations nested in rolluprecursive always use the node property path specified in the RecursiveHierarchy annotation, regardless of what is specified in the third parameter of the $hierarchy option.
A similar switch in the node property path happens in connection with transformnested.
As an alternative to the system query option $hierarchy, we could introduce a transformation hierarchy$(H,Q,I,T)$ where $T$ is a transformation sequence.
To simplify the syntax of hierarchical transformations, remove the first three parameters $H,Q,I$ of the hierarchical transformations
ancestors
,descendants
,traverse
and ofrolluprecursive
and introduce a new system query option$hierarchy=
$H,Q,I$. The third parameter $I$ can be omitted if it equals the@Aggregation.RecursiveHierarchy#Q/NodeProperty
.descendants
and a subsequentancestors
.$hierarchy=SalesOrgHierarchy
could imply hierarchy collection = requested resource.Aggregation.RecursiveHierarchy
annotation (perhaps even unqualified?) on the requested resource,$hierarchy
need not be specified at all.Without the redundancy, it seems justifiable to allow full-blown hierarchical transformations as optional parameters of
rolluprecursive
(#86):If the requested entity set is
Sales
instead ofSalesOrganizations
, however, the hierarchical transformations nested inrolluprecursive
always use the node property path specified in theRecursiveHierarchy
annotation, regardless of what is specified in the third parameter of the$hierarchy
option.A similar switch in the node property path happens in connection with
transformnested
.As an alternative to the system query option
$hierarchy
, we could introduce a transformationhierarchy
$(H,Q,I,T)$ where $T$ is a transformation sequence.