Description
Our current model of how capabilities are known is rather flawed, with constants being defined/used left and right – without a reasonable basic model behind them.
Create a netconf.api.capabilities.ProtocolCapability enum and populate it with the current contents of https://www.iana.org/assignments/netconf-capability-urns/netconf-capability-urns.xhtml#netconf-capability-urns-1 . This enumeration should expose this basic interface:
enum ProtocolCapability { WRITABLE_RUNNING(":writable-running", "urn:ietf:params:netconf:capability:writable-running:1.0"), ...; public @NonNull String capabilityName() { // returns ":writable-running" } public @NonNull String capabilityURN() { // returns "urn:ietf:params:netconf:capability:writable-running:1.0" } }
Also create a companion ProtocolCapabilityURN static holder class for the individual URN strings and migrate constants.
Attachments
Gerrit Reviews
| # | Subject | Branch | Project | Status | CR | V |
|---|---|---|---|---|---|---|
| 105846,25 | Design a Capability object model | master | netconf | Status: NEW | +1 | +1 |
| 107471,28 | Simplify working with Capability objects | master | netconf | Status: NEW | +1 | +1 |