[YANGTOOLS-899] Unify NodeIdentifier and NodeIdentifierWithPredicates Created: 27/Aug/18  Updated: 05/Jan/24

Status: Confirmed
Project: yangtools
Component/s: data-impl
Affects Version/s: None
Fix Version/s: 14.0.0

Type: Improvement Priority: Medium
Reporter: Robert Varga Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Relates
relates to YANGTOOLS-568 Remove AugmentationIdentifier and Aug... Resolved
Epic Link: Redesign NormalizedNode

 Description   

The dichotomy of these two PathArguments leads to keyed list items being addressed through two PathArguments. With YANGTOOLS-585 out of the way the presence of lists as  DataTree elements is an implementation detail, as they are completely transparent to datastore operations.

Considering filtering requirements coming from RFC6241, there really are four levels of NodeIdentifier when we are considering lists:

  • NodeIdentifier: select all members
  • NodeIdentifierWithPredicates: select a single (keyed) list entry
  • NodeIdentifier + NodePredicates: select all nodes matching predicates
  • if NodePredicates is a superset of key predicates: select single entry if it is matching additional predicates

This has interplay with other types like containers, where predicates must match leaves – hence having a read() of a container using NodeIdentifier + NodePredicates would a well-defined filtering operation. We also need to consider implementation complexity and usefulness in face of the fact we want to support XPath queries at some point.



 Comments   
Comment by Robert Varga [ 03/Sep/18 ]

While this issue deals with lists, where NodeIdentifierWithPredicates selects a certain list member, YANGTOOLS-568 is geared towards elimination of AugmentationIdentifier – which instead becomes a child selection filter.

Generated at Wed Feb 07 20:54:37 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.