From: Jakub Toth Date: Mon, 24 Apr 2017 10:58:08 +0000 (+0200) Subject: Use YangSnippetCleaner in implemetation + test with yangs X-Git-Tag: release/carbon~24 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=66422862257da45320f060d56655970f47dfc95c;p=mdsal.git Use YangSnippetCleaner in implemetation + test with yangs *fix revision part of module in yangTemplateForModule template Change-Id: Ic5719982c25c0c4223eeb66da8de2afe27d4d8ec Signed-off-by: Jakub Toth (cherry picked from commit 0a90e0b8385289e0d3c77d25ab56a17a28ca5960) --- diff --git a/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/AuxiliaryGenUtils.java b/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/AuxiliaryGenUtils.java index 95da08fbff..e30c25bbb5 100644 --- a/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/AuxiliaryGenUtils.java +++ b/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/AuxiliaryGenUtils.java @@ -32,6 +32,7 @@ import org.opendaylight.mdsal.binding.javav2.generator.spi.TypeProvider; import org.opendaylight.mdsal.binding.javav2.generator.util.JavaIdentifier; import org.opendaylight.mdsal.binding.javav2.generator.util.JavaIdentifierNormalizer; import org.opendaylight.mdsal.binding.javav2.generator.util.Types; +import org.opendaylight.mdsal.binding.javav2.generator.util.YangSnippetCleaner; import org.opendaylight.mdsal.binding.javav2.generator.util.generated.type.builder.GeneratedTOBuilderImpl; import org.opendaylight.mdsal.binding.javav2.generator.yang.types.TypeProviderImpl; import org.opendaylight.mdsal.binding.javav2.model.api.AccessModifier; @@ -192,7 +193,8 @@ final class AuxiliaryGenUtils { sb.append(NEW_LINE); sb.append("
");
             sb.append(NEW_LINE);
-            sb.append(encodeAngleBrackets(yangTemplateForNode.render(schemaNode, module).body()));
+            String formedYang = YangSnippetCleaner.clean(yangTemplateForNode.render(schemaNode, module).body());
+            sb.append(encodeAngleBrackets(formedYang));
             sb.append("
"); sb.append(NEW_LINE); sb.append("The schema path to identify an instance is"); @@ -242,7 +244,8 @@ final class AuxiliaryGenUtils { sb.append(NEW_LINE); sb.append("
");
             sb.append(NEW_LINE);
-            sb.append(encodeAngleBrackets(yangTemplateForModule.render(module).body()));
+            String formedYang = YangSnippetCleaner.clean(yangTemplateForModule.render(module).body());
+            sb.append(encodeAngleBrackets(formedYang));
             sb.append("
"); } diff --git a/binding2/mdsal-binding2-generator-impl/src/main/twirl/org/opendaylight/mdsal/binding/javav2/generator/impl/yangTemplateForModule.scala.txt b/binding2/mdsal-binding2-generator-impl/src/main/twirl/org/opendaylight/mdsal/binding/javav2/generator/impl/yangTemplateForModule.scala.txt index 5ee18de975..02dbb57aab 100644 --- a/binding2/mdsal-binding2-generator-impl/src/main/twirl/org/opendaylight/mdsal/binding/javav2/generator/impl/yangTemplateForModule.scala.txt +++ b/binding2/mdsal-binding2-generator-impl/src/main/twirl/org/opendaylight/mdsal/binding/javav2/generator/impl/yangTemplateForModule.scala.txt @@ -39,10 +39,14 @@ } } @if(module.getRevision() != null) { - revision @{SimpleDateFormatUtil.getRevisionFormat().format(module.getRevision())} { - @for(effectiveStatement <- module.asInstanceOf[EffectiveStatement[_, _]].effectiveSubstatements()){ - @if(effectiveStatement.getDeclared().isInstanceOf[RevisionStatement]){ - description "@{effectiveStatement.asInstanceOf[DocumentedNode].getDescription()}"; + @for(effectiveStatement <- module.asInstanceOf[EffectiveStatement[_, _]].effectiveSubstatements()){ + @if(effectiveStatement.getDeclared().isInstanceOf[RevisionStatement]){ + @if(effectiveStatement.asInstanceOf[DocumentedNode].getDescription() == null || effectiveStatement.asInstanceOf[DocumentedNode].getDescription().isEmpty()){ + revision @{SimpleDateFormatUtil.getRevisionFormat().format(module.getRevision())}; + } else { + revision @{SimpleDateFormatUtil.getRevisionFormat().format(module.getRevision())} { + description "@{effectiveStatement.asInstanceOf[DocumentedNode].getDescription()}"; + } } } } diff --git a/binding2/mdsal-binding2-generator-impl/src/test/java/org/opendaylight/mdsal/binding/javav2/generator/impl/BindingGeneratorImplTest.java b/binding2/mdsal-binding2-generator-impl/src/test/java/org/opendaylight/mdsal/binding/javav2/generator/impl/BindingGeneratorImplTest.java index c9adc7c610..461befc751 100644 --- a/binding2/mdsal-binding2-generator-impl/src/test/java/org/opendaylight/mdsal/binding/javav2/generator/impl/BindingGeneratorImplTest.java +++ b/binding2/mdsal-binding2-generator-impl/src/test/java/org/opendaylight/mdsal/binding/javav2/generator/impl/BindingGeneratorImplTest.java @@ -69,6 +69,28 @@ public class BindingGeneratorImplTest { assertEquals(7, test_i[0]); } + @Test + public void generateTypesDescriptionsTest() throws Exception { + final BindingGenerator bg = new BindingGeneratorImpl(true); + final SchemaContext context = YangParserTestUtils.parseYangSources("/base/with_import/"); + assertNotNull(context); + + final List generateTypes = bg.generateTypes(context, context.getModules()); + assertNotNull(generateTypes); + assertTrue(!generateTypes.isEmpty()); + + for (final Type type : generateTypes) { + if (type.getName().equals("TestData")) { + final String description = ((GeneratedType) type).getDescription().get(); + description + .contains(" import test-import { prefix \"imported-test\"; revision-date 2017-04-21; }\n\n"); + description.contains(" revision 2017-02-06;\n\n"); + description.contains(" typedef my-type {\n type int8;\n }"); + description.contains(" container *my-cont {\n }\n"); + } + } + } + private void testActualType(final GeneratedType t, final int[] test_i) { MethodSignature methodSignature = null; switch (t.getName()) { diff --git a/binding2/mdsal-binding2-generator-impl/src/test/resources/base/with_import/test-import.yang b/binding2/mdsal-binding2-generator-impl/src/test/resources/base/with_import/test-import.yang new file mode 100644 index 0000000000..ac7c31b2fa --- /dev/null +++ b/binding2/mdsal-binding2-generator-impl/src/test/resources/base/with_import/test-import.yang @@ -0,0 +1,11 @@ +module test-import { + + yang-version 1; + namespace "urn:test:simple:test:import"; + prefix "test-import"; + + revision 2017-04-21; + + container *my-import-%cont { + } +} \ No newline at end of file diff --git a/binding2/mdsal-binding2-generator-impl/src/test/resources/base/with_import/test-typedef-with-import.yang b/binding2/mdsal-binding2-generator-impl/src/test/resources/base/with_import/test-typedef-with-import.yang new file mode 100644 index 0000000000..db5caab4f6 --- /dev/null +++ b/binding2/mdsal-binding2-generator-impl/src/test/resources/base/with_import/test-typedef-with-import.yang @@ -0,0 +1,17 @@ +module test { + + yang-version 1; + namespace "urn:test:simple:test"; + prefix "test"; + + import test-import { prefix "imported-test"; revision-date 2017-04-21; } + + revision 2017-02-06; + + typedef my-type { + type int8; + } + + container *my-cont { + } +} \ No newline at end of file