From e2c9863b18008fce5c30bbd7e5af9858c0ade909 Mon Sep 17 00:00:00 2001 From: Martin Ciglan Date: Thu, 15 Jun 2017 07:56:51 +0200 Subject: [PATCH] Binding generator v2 - augments fix #1 - group augments by target path and generate code accordingly. TODO #2 uses-augment #3 augmented choice-cases Note: ignore some of failing existing tests until all work here is done Explanation: yang snippet container foo { leaf my-leaf { type string; } } augment /foo:foo { leaf bar { type string; } } augment /foo:foo { leaf baz { type string; } } produces same generated code as container foo { leaf my-leaf { type string; } } augment /foo:foo { leaf bar { type string; } leaf baz { type string; } } Change-Id: I2bdb3ecf22bf2cb72fab3080f2b40748775ba49b Signed-off-by: Martin Ciglan --- .../generator/impl/AugmentToGenType.java | 93 ++++++++++--------- .../generator/impl/AuxiliaryGenUtils.java | 2 +- .../javav2/generator/impl/GenHelperUtil.java | 51 ++++++++++ .../generator/impl/AugmentToGenTypeTest.java | 9 ++ .../resources/augment-group/test-augment.yang | 22 +++++ 5 files changed, 132 insertions(+), 45 deletions(-) create mode 100644 binding2/mdsal-binding2-generator-impl/src/test/resources/augment-group/test-augment.yang diff --git a/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/AugmentToGenType.java b/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/AugmentToGenType.java index bf2521fc9e..7fe70dabbb 100644 --- a/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/AugmentToGenType.java +++ b/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/AugmentToGenType.java @@ -17,10 +17,11 @@ import java.util.Comparator; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; +import java.util.stream.Collectors; import org.opendaylight.mdsal.binding.javav2.generator.spi.TypeProvider; import org.opendaylight.mdsal.binding.javav2.generator.util.BindingGeneratorUtil; -import org.opendaylight.mdsal.binding.javav2.generator.util.ReferencedTypeImpl; import org.opendaylight.mdsal.binding.javav2.model.api.Type; import org.opendaylight.mdsal.binding.javav2.model.api.type.builder.GeneratedTypeBuilder; import org.opendaylight.mdsal.binding.javav2.util.BindingMapping; @@ -75,9 +76,11 @@ final class AugmentToGenType { * @param module * module from which is obtained list of all augmentation objects * to iterate over them - * @param schemaContext - * @param genCtx - * @param genTypeBuilders + * @param schemaContext actual schema context + * @param typeProvider actual type provider instance + * @param genCtx generated input context + * @param genTypeBuilders auxiliary type builders map + * @param verboseClassComments verbosity switch * * @throws IllegalArgumentException *