From 38c2d30fd7464da00542c8b166325740a0005bb2 Mon Sep 17 00:00:00 2001 From: Martin Ciglan Date: Thu, 20 Apr 2017 09:12:17 +0200 Subject: [PATCH] Code generator prototype - Binding Specification v2 - benefits from https://git.opendaylight.org/gerrit/#/c/55146/ - bugfix for typedefs - some code clean-up Change-Id: I1f52f70bc320792ba22fa751c5d6257c3d7fbc05 Signed-off-by: Martin Ciglan --- .../generated/type/builder/GeneratedTOBuilderImpl.java | 3 +++ .../javav2/java/api/generator/GeneratorJavaFile.java | 3 +-- .../rangeGenerators/AbstractRangeGenerator.java | 2 +- .../java/api/generator/renderers/ClassRenderer.java | 9 ++++----- .../javav2/java/api/generator/classTemplate.scala.txt | 2 +- 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/binding2/mdsal-binding2-generator-util/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/util/generated/type/builder/GeneratedTOBuilderImpl.java b/binding2/mdsal-binding2-generator-util/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/util/generated/type/builder/GeneratedTOBuilderImpl.java index 597027c55e..1d50cc029a 100644 --- a/binding2/mdsal-binding2-generator-util/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/util/generated/type/builder/GeneratedTOBuilderImpl.java +++ b/binding2/mdsal-binding2-generator-util/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/util/generated/type/builder/GeneratedTOBuilderImpl.java @@ -276,6 +276,9 @@ public final class GeneratedTOBuilderImpl extends AbstractGeneratedTypeBuilder getDescription() { + if (description == null) { + return Optional.absent(); + } return Optional.of(description); } diff --git a/binding2/mdsal-binding2-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/javav2/java/api/generator/GeneratorJavaFile.java b/binding2/mdsal-binding2-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/javav2/java/api/generator/GeneratorJavaFile.java index ab869983b6..c09bcf5f30 100644 --- a/binding2/mdsal-binding2-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/javav2/java/api/generator/GeneratorJavaFile.java +++ b/binding2/mdsal-binding2-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/javav2/java/api/generator/GeneratorJavaFile.java @@ -71,8 +71,7 @@ public final class GeneratorJavaFile { generators.add(new EnumGenerator()); generators.add(new InterfaceGenerator()); generators.add(new BuilderGenerator()); - //TODO: finish generators below -// generators.add(new TOGenerator()); + generators.add(new TOGenerator()); } /** diff --git a/binding2/mdsal-binding2-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/javav2/java/api/generator/rangeGenerators/AbstractRangeGenerator.java b/binding2/mdsal-binding2-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/javav2/java/api/generator/rangeGenerators/AbstractRangeGenerator.java index 586eb89682..bd6c812f4f 100644 --- a/binding2/mdsal-binding2-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/javav2/java/api/generator/rangeGenerators/AbstractRangeGenerator.java +++ b/binding2/mdsal-binding2-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/javav2/java/api/generator/rangeGenerators/AbstractRangeGenerator.java @@ -28,7 +28,7 @@ public abstract class AbstractRangeGenerator> { } static { - final Builder> b = ImmutableMap.> builder(); + final Builder> b = ImmutableMap.builder(); addGenerator(b, new ByteRangeGenerator()); addGenerator(b, new ShortRangeGenerator()); addGenerator(b, new IntegerRangeGenerator()); diff --git a/binding2/mdsal-binding2-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/javav2/java/api/generator/renderers/ClassRenderer.java b/binding2/mdsal-binding2-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/javav2/java/api/generator/renderers/ClassRenderer.java index c67f16cc9a..7af731732b 100644 --- a/binding2/mdsal-binding2-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/javav2/java/api/generator/renderers/ClassRenderer.java +++ b/binding2/mdsal-binding2-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/javav2/java/api/generator/renderers/ClassRenderer.java @@ -80,8 +80,8 @@ public class ClassRenderer extends BaseRenderer { Collections.sort(sorted, function); allProperties = ImmutableList.copyOf(sorted); - if (restrictions != null && !(restrictions.getRangeConstraints() != null && !restrictions.getLengthConstraints - ().isEmpty())) { + if (restrictions != null && (restrictions.getRangeConstraints() != null && !restrictions.getRangeConstraints() + .isEmpty())) { rangeGenerator = AbstractRangeGenerator.forType(findProperty(genType, "value").getReturnType()); Preconditions.checkNotNull(rangeGenerator); } else { @@ -127,7 +127,6 @@ public class ClassRenderer extends BaseRenderer { } protected String generateBody(final boolean isInnerClass) { - importedNames.put("genTypeSuper", importedName(genTO.getSuperType())); importedNames.put("type", importedName(getType())); importedNames.put("arrays", importedName(Arrays.class)); importedNames.put("objects", importedName(Objects.class)); @@ -254,7 +253,7 @@ public class ClassRenderer extends BaseRenderer { final String propertyMethod = sb3.toString(); return classTemplate.render(getType(), genTO, importedNames, implementsList, innerClasses, enumerations, - constants, constructors, lengthRangeChecker, fields, (List) allProperties, propertyMethod, + constants, constructors, lengthRangeChecker, fields, allProperties, propertyMethod, isInnerClass).body(); } @@ -282,7 +281,7 @@ public class ClassRenderer extends BaseRenderer { final String unionConstructor = sb2.toString(); final String argumentsDeclaration = asArgumentsDeclaration(allProperties); - return classTemplateConstructors.render(genTO, (List) allProperties, properties, parentProperties, + return classTemplateConstructors.render(genTO, allProperties, properties, parentProperties, importedNames, argumentsDeclaration, unionConstructor, genRestrictions).body(); } diff --git a/binding2/mdsal-binding2-java-api-generator/src/main/twirl/org/opendaylight/mdsal/binding/javav2/java/api/generator/classTemplate.scala.txt b/binding2/mdsal-binding2-java-api-generator/src/main/twirl/org/opendaylight/mdsal/binding/javav2/java/api/generator/classTemplate.scala.txt index 846b2f882b..bcd86c2bf5 100644 --- a/binding2/mdsal-binding2-java-api-generator/src/main/twirl/org/opendaylight/mdsal/binding/javav2/java/api/generator/classTemplate.scala.txt +++ b/binding2/mdsal-binding2-java-api-generator/src/main/twirl/org/opendaylight/mdsal/binding/javav2/java/api/generator/classTemplate.scala.txt @@ -68,7 +68,7 @@ else if(genType.isAbstract) " abstract " else " " } class @{genType.getName} -@if(genTo.getSuperType != null) { extends @{importedNames.get("genTypeSuper")}} +@if(genTo.getSuperType != null) { extends @{importedNames.get("superType")}} @if(!implementsList.isEmpty) { implements @{implementsList}} } -- 2.36.6