Add alternative enum assigned name mapping
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 9 Mar 2018 15:55:44 +0000 (16:55 +0100)
committerAnil Belur <abelur@linuxfoundation.org>
Wed, 19 Jun 2024 00:41:22 +0000 (10:41 +1000)
commit981acad354d0dcb555daecea2650e44f0c601f2a
treec670f513ff7e25f5c79b8f803857df592b7e2f7a
parenta8e189d15762063d9c1c605575e17598b5f6d9ca
Add alternative enum assigned name mapping

This patch corrects enumeration mapping rules so that any unicode
string can be mapped to a valid Java identifier as per JLS8.

This is done by attempting to apply className() mapping to all names
and using that if it results in valid non-conflicting identifiers.

If a conflict is detected, we use a bijective mapping, which encodes
any conflicting characters using an $-based escaping scheme.

JIRA: MDSAL-309
Change-Id: Ic51405e533eff9af6afc2abaa8d0cc193d718e64
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/EnumerationCodec.java
binding/mdsal-binding-test-model/src/main/yang/opendaylight-mdsal309.yang [new file with mode: 0644]
binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/BindingMapping.java
binding/yang-binding/src/test/java/org/opendaylight/yangtools/yang/binding/BindingMappingTest.java