Rework inlined union generation 10/69610/8
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 19 Mar 2018 08:43:11 +0000 (09:43 +0100)
committerRobert Varga <nite@hq.sk>
Tue, 20 Mar 2018 09:35:25 +0000 (09:35 +0000)
commitbeef61289ca5b34724f8c8b73ca851f991af7bb7
treee1827e5d164afb5119de6a2523914516f276cbf4
parentacb4d4f5909022a36b80169c84d2f3728f53cc57
Rework inlined union generation

Unions internal to a leaf union end up being incompletely generated,
as they lack getValue(), hashCode(), equals() and do not correctly
bind to its enclosing builder -- leading to a generated code not being
compilable.

There are multiple issues here, all of which are addressed in this patch:
- value/hashCode/equals properties are created in the wrong place
- property return type is set to the builder, not its product
- union builder type is not set as a union
- builders for nested types are not correctly emitted

JIRA: MDSAL-320
Change-Id: I60697c74669d4508922ea3ee22e2f0fe5d99b322
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-generator-api/src/main/java/org/opendaylight/mdsal/binding/model/api/type/builder/GeneratedTOBuilder.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/AbstractTypeGenerator.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/AbstractTypeProvider.java
binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/generator/impl/BitAndUnionTOEnclosingTest.java
binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/generator/impl/Mdsal269Test.java
binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/generator/impl/Mdsal320Test.java [new file with mode: 0644]
binding/mdsal-binding-generator-impl/src/test/resources/mdsal320.yang [new file with mode: 0644]
binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/AbstractGeneratedTOBuilder.java
binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/CodegenGeneratedTOBuilder.java
binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/test/CompilationTest.java
binding/mdsal-binding-java-api-generator/src/test/resources/compilation/mdsal320/mdsal320.yang [new file with mode: 0644]