-
Improvement
-
Resolution: Unresolved
-
Medium
-
None
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(); }