Refactor binding.DataRoot
DataRoot is really a (currently unaddressable) DataContainer. Make it
generic, forcing specialization, and extend DataContainer.
This ends up cleaning up some sites, which are using generic capture
<R extends DataRoot & DataObject> to express a generated type -- those
now become <R extends DataRoot<R>>.
We also get the goodies of terminal specialization like OpaqueObject,
like an accurate implementedInterface().
JIRA: YANGTOOLS-1577
Change-Id: Ie37fad4b7274e06dbf412c6d3a1cee3d6a6c98c0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
19 files changed: