Details
-
Improvement
-
Status: Confirmed
-
Medium
-
Resolution: Unresolved
-
None
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();
}
Attachments
Issue Links
Gerrit Reviews
| # | Subject | Branch | Project | Status | CR | V |
|---|---|---|---|---|---|---|
| 104772,25 | WIP: Add binding.api.(Keyed)Instance{Identifier,Wildcard} | master | mdsal | Status: NEW | -1 | -1 |
| 109700,2 | WIP: Add DataObjectInstance | master | mdsal | Status: NEW | 0 | -1 |
| 109753,10 | Eliminate CodecItemFactory | master | mdsal | Status: NEW | 0 | +1 |