HasHierarchicalFilter uses \oihana\traits\ContainerTrait, \Psr\Log\LoggerAwareTrait
Table of Contents
Methods
- prepareHierarchicalFilter() : string|null
- Prepare hierarchical filter from declarative configuration
- buildArrayTraversal() : string|null
- Build array expansion traversal.
- buildDocumentTraversal() : string|null
- Build document traversal (nested object)
- buildEdgeTraversal() : string|null
- Build edge traversal
- buildFilterRecursive() : string|null
- Build filter condition recursively through path segments.
- buildJoinTraversal() : string|null
- Build join traversal
- buildLeafCondition() : string|null
- Build leaf condition by delegating to existing filter logic
Methods
prepareHierarchicalFilter()
Prepare hierarchical filter from declarative configuration
protected
prepareHierarchicalFilter(array<string|int, mixed> $init, array<string|int, mixed> &$binds[, string $docRef = AQL::DOC ]) : string|null
Parameters
- $init : array<string|int, mixed>
- $binds : array<string|int, mixed>
- $docRef : string = AQL::DOC
Tags
Return values
string|nullbuildArrayTraversal()
Build array expansion traversal.
private
buildArrayTraversal(array<string|int, mixed> $remainingSegments, FilterPath $segmentInfo, array<string|int, mixed> $init, array<string|int, mixed> &$binds, string $docRef) : string|null
Parameters
- $remainingSegments : array<string|int, mixed>
- $segmentInfo : FilterPath
- $init : array<string|int, mixed>
- $binds : array<string|int, mixed>
- $docRef : string
Tags
Return values
string|nullbuildDocumentTraversal()
Build document traversal (nested object)
private
buildDocumentTraversal(array<string|int, mixed> $remainingSegments, FilterPath $segmentInfo, array<string|int, mixed> $init, array<string|int, mixed> &$binds, string $docRef) : string|null
Parameters
- $remainingSegments : array<string|int, mixed>
- $segmentInfo : FilterPath
- $init : array<string|int, mixed>
- $binds : array<string|int, mixed>
- $docRef : string
Tags
Return values
string|nullbuildEdgeTraversal()
Build edge traversal
private
buildEdgeTraversal(array<string|int, mixed> $remainingSegments, FilterPath $segmentInfo, array<string|int, mixed> $init, array<string|int, mixed> &$binds, string $docRef[, array<string|int, mixed> $availableEdges = [] ]) : string|null
Parameters
- $remainingSegments : array<string|int, mixed>
-
The remaining path segments to process.
- $segmentInfo : FilterPath
-
The current segment information with nested relations.
- $init : array<string|int, mixed>
-
The original filter parameters.
- $binds : array<string|int, mixed>
-
The bind variables array.
- $docRef : string
-
The current document reference.
- $availableEdges : array<string|int, mixed> = []
Tags
Return values
string|null —The AQL condition for edge traversal, or null on failure.
buildFilterRecursive()
Build filter condition recursively through path segments.
private
buildFilterRecursive(array<string|int, mixed> $segments, array<string|int, mixed> $filters, array<string|int, mixed> $init, array<string|int, mixed> &$binds, string $docRef[, array<string|int, mixed> $parentPath = [] ][, array<string|int, mixed> $currentEdges = [] ][, array<string|int, mixed> $currentJoins = [] ]) : string|null
Parameters
- $segments : array<string|int, mixed>
-
Remaining segments to process.
- $filters : array<string|int, mixed>
-
Current level filter configuration.
- $init : array<string|int, mixed>
-
Original filter parameters.
- $binds : array<string|int, mixed>
-
Bind variables array.
- $docRef : string
-
Current document reference.
- $parentPath : array<string|int, mixed> = []
-
Accumulated path from parent segments.
- $currentEdges : array<string|int, mixed> = []
-
The current edges definitions.
- $currentJoins : array<string|int, mixed> = []
-
The current joins definitions.
Tags
Return values
string|nullbuildJoinTraversal()
Build join traversal
private
buildJoinTraversal(array<string|int, mixed> $remainingSegments, FilterPath $segmentInfo, array<string|int, mixed> $init, array<string|int, mixed> &$binds, string $docRef[, array<string|int, mixed> $availableJoins = [] ]) : string|null
Parameters
- $remainingSegments : array<string|int, mixed>
-
The remaining path segments to process.
- $segmentInfo : FilterPath
-
The current segment information with nested relations.
- $init : array<string|int, mixed>
-
The original filter parameters.
- $binds : array<string|int, mixed>
-
The bind variables array.
- $docRef : string
-
The current document reference.
- $availableJoins : array<string|int, mixed> = []
Tags
Return values
string|null —The AQL condition for join traversal, or null on failure.
buildLeafCondition()
Build leaf condition by delegating to existing filter logic
private
buildLeafCondition(FilterPath $segmentInfo, array<string|int, mixed> $init, array<string|int, mixed> &$binds, string $docRef) : string|null
Parameters
- $segmentInfo : FilterPath
-
The segment information with type and path.
- $init : array<string|int, mixed>
-
The original filter parameters.
- $binds : array<string|int, mixed>
-
The bind variables array.
- $docRef : string
-
The current document reference.
Return values
string|null —The AQL condition string, or null on failure.