[MDSAL-815] Add binding.api.(Keyed)Instance{Identifier,Wildcard} Created: 24/Feb/23  Updated: 18/Jan/24

Status: Confirmed
Project: mdsal
Component/s: Binding API
Affects Version/s: None
Fix Version/s: 14.0.0, 13.0.1

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

Issue Links:
Relates
relates to MDSAL-817 Add binding.api.(Keyed)Instance{Ident... In Review
relates to MDSAL-798 InstanceIdentifierBuilder should be v... Resolved

 Description   

Our current use of yang.binding.InstanceIdentifier in mdsal-binding-api is rather unfortunate - with accidental feature (i.e. wildcards) and layering violation.

Add two basic concepts:

  • InstanceIdentifier, covering the yang.binding.InstanceIdentifier wildcarded=false case
  • InstanceWildcard, covering the yang.binding.InstanceIdentifier wildcarded=true case

These should work similarly to InstanceIdentifierBuilder as of MDSAL-798.

Compatibility to/from yang.binding.InstanceIdentifier should be covered with methods for each of the concepts:

class InstanceIdentifier {
    // Throws IAE if legacy is wildcarded
    static InstanceIdentifier ofLegacy(yang.binding.InstanceIdentifier legacy);

    // Always non-wildcarded
    yang.binding.InstanceIdentifier toLegacy();
}

class InstanceWildcard {
    // Throws IAE if legacy is *not* wildcarded
    static InstanceWildcard ofLegacy(yang.binding.InstanceIdentifier legacy);

    // Always wildcarded
    yang.binding.InstanceIdentifier toLegacy();
}

 

 

 


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