Add alternative enum assigned name mapping 38/69338/2
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 9 Mar 2018 15:55:44 +0000 (16:55 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 12 Mar 2018 10:33:27 +0000 (11:33 +0100)
commitbdce7d5a47c73e7b5b7087f9d353d4a3b8715ac4
tree321baa93ced90b759b1891e2ce6a542a5c5266b0
parentae3218965b4f165649473b9aa2b4b3ac11238ec9
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>
(cherry picked from commit 53433dfe15da970a6af8362ad21911a82943de7d)
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/yangtools/binding/data/codec/impl/EnumerationCodec.java
binding/mdsal-binding-generator-api/src/main/java/org/opendaylight/mdsal/binding/model/api/type/builder/EnumBuilder.java
binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/EnumerationBuilderImpl.java
binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/EnumerationBuilderImplTest.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