Add NormalizedNode.contract()
NormalizedNode hierarchy is defined in terms of interfaces with a
multitude of possible implementations. Attempting to dispatch among them
without sealed classes is an exercise in futility, but we can actually
mark the top-level contracts as needed.
This makes it very clear which interfaces can be reasonably implemented
and allows a proper dispatch on classes. Furthermore it improves safety
by explicitly not allowing mixes which would otherwise be possible.
JIRA: YANGTOOLS-1203
Change-Id: I177f158423807b83d83f375c69c6985880eaed91
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
18 files changed: