Code generator prototype - Binding Specification v2 22/55722/1
authorMartin Ciglan <mciglan@cisco.com>
Thu, 20 Apr 2017 07:12:17 +0000 (09:12 +0200)
committerRobert Varga <nite@hq.sk>
Thu, 20 Apr 2017 11:30:25 +0000 (11:30 +0000)
- benefits from https://git.opendaylight.org/gerrit/#/c/55146/
- bugfix for typedefs
- some code clean-up

Change-Id: I1f52f70bc320792ba22fa751c5d6257c3d7fbc05
Signed-off-by: Martin Ciglan <mciglan@cisco.com>
(cherry picked from commit 38c2d30fd7464da00542c8b166325740a0005bb2)

binding2/mdsal-binding2-generator-util/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/util/generated/type/builder/GeneratedTOBuilderImpl.java
binding2/mdsal-binding2-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/javav2/java/api/generator/GeneratorJavaFile.java
binding2/mdsal-binding2-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/javav2/java/api/generator/rangeGenerators/AbstractRangeGenerator.java
binding2/mdsal-binding2-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/javav2/java/api/generator/renderers/ClassRenderer.java
binding2/mdsal-binding2-java-api-generator/src/main/twirl/org/opendaylight/mdsal/binding/javav2/java/api/generator/classTemplate.scala.txt

index 597027c55e34d5f482038e3865ec4e285107cba3..1d50cc029acf9c5872ada4a8fff1f06ace9ad50e 100644 (file)
@@ -276,6 +276,9 @@ public final class GeneratedTOBuilderImpl extends AbstractGeneratedTypeBuilder<G
 
         @Override
         public Optional<String> getDescription() {
+            if (description == null) {
+                return Optional.absent();
+            }
             return Optional.of(description);
         }
 
index ab869983b6ce5d5ffd0c39cb901728df97b66036..c09bcf5f3028e9257e6a024e289b93381ea61f67 100644 (file)
@@ -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());
     }
 
     /**
index 586eb8968283602cca9b0d06dc0f8e4635d2df30..bd6c812f4f74e1c07603504d2f11dcfe797e8b7b 100644 (file)
@@ -28,7 +28,7 @@ public abstract class AbstractRangeGenerator<T extends Number & Comparable<T>> {
     }
 
     static {
-        final Builder<String, AbstractRangeGenerator<?>> b = ImmutableMap.<String, AbstractRangeGenerator<?>> builder();
+        final Builder<String, AbstractRangeGenerator<?>> b = ImmutableMap.builder();
         addGenerator(b, new ByteRangeGenerator());
         addGenerator(b, new ShortRangeGenerator());
         addGenerator(b, new IntegerRangeGenerator());
index c67f16cc9aa8056e2b7a413757d1785b7dbe79d3..7af731732b531e7bea8b488812a1a0d28df852d6 100644 (file)
@@ -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();
     }
 
index 846b2f882bf6faa5d6a64a9e946697c3bf33e25c..bcd86c2bf5e9071005d8cd59979f567b696c8ef6 100644 (file)
@@ -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}}
 }