Bug 1411: BindingGeneratorImpl decomposition - Container schema nodes 07/52207/1
authorMartin Ciglan <mciglan@cisco.com>
Thu, 23 Feb 2017 11:43:58 +0000 (12:43 +0100)
committerMartin Ciglan <mciglan@cisco.com>
Thu, 23 Feb 2017 11:43:58 +0000 (12:43 +0100)
- fixes some issues with generated context
- starts using NonJavaCharsConverter utility
- code clean-up

Change-Id: I578205f7d451ed8a1b530643c8fa592f58eb5add
Signed-off-by: Martin Ciglan <mciglan@cisco.com>
binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/BindingGeneratorImpl.java
binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/GenHelperUtil.java
binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/ModuleToGenType.java
binding2/mdsal-binding2-util/src/main/java/org/opendaylight/mdsal/binding/javav2/util/BindingMapping.java

index 219af4be954c0c10aa7971daac70948592d20669..51aff1d07c485c911f194d3174a61907eede12b7 100644 (file)
@@ -97,7 +97,7 @@ public class BindingGeneratorImpl implements BindingGenerator {
 
         for (final Module contextModule : contextModules) {
             genCtx = ModuleToGenType.generate(contextModule, genTypeBuilders, context, typeProvider,
-                    verboseClassComments);
+                    genCtx, verboseClassComments);
         }
         for (final Module contextModule : contextModules) {
             genCtx = AugmentToGenType.generate(contextModule, context, genCtx,
index 28aef1cc07c2fb9189e6581abd36bfa8378e1fc6..de65f3795ffcb56c3ae521511235043e6a5a91cd 100644 (file)
@@ -24,6 +24,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.regex.Pattern;
 import org.opendaylight.mdsal.binding.javav2.generator.util.BindingTypes;
+import org.opendaylight.mdsal.binding.javav2.generator.util.JavaIdentifier;
+import org.opendaylight.mdsal.binding.javav2.generator.util.NonJavaCharsConverter;
 import org.opendaylight.mdsal.binding.javav2.generator.util.Types;
 import org.opendaylight.mdsal.binding.javav2.generator.util.generated.type.builder.GeneratedTypeBuilderImpl;
 import org.opendaylight.mdsal.binding.javav2.model.api.GeneratedType;
@@ -100,7 +102,8 @@ final class GenHelperUtil {
             verboseClassComments) {
         Preconditions.checkArgument(module != null, "Module reference cannot be NULL.");
         final String packageName = BindingMapping.getRootPackageName(module);
-        final String moduleName = BindingMapping.getClassName(module.getName()) + postfix;
+        final String moduleName = BindingMapping.getClassName(NonJavaCharsConverter.convertIdentifier(module.getName
+                (), JavaIdentifier.CLASS)) + postfix;
 
         final GeneratedTypeBuilderImpl moduleBuilder = new GeneratedTypeBuilderImpl(packageName, moduleName);
         moduleBuilder.setDescription(createDescription(module, verboseClassComments));
@@ -413,9 +416,11 @@ final class GenHelperUtil {
 
         String genTypeName;
         if (prefix == null) {
-            genTypeName = BindingMapping.getClassName(schemaNodeName);
+            genTypeName = BindingMapping.getClassName(NonJavaCharsConverter.convertIdentifier(schemaNodeName,
+                    JavaIdentifier.CLASS));
         } else {
-            genTypeName = prefix + BindingMapping.getClassName(schemaNodeName);
+            genTypeName = prefix + BindingMapping.getClassName(NonJavaCharsConverter.convertIdentifier
+                    (schemaNodeName, JavaIdentifier.CLASS));
         }
 
         final GeneratedTypeBuilderImpl newType = new GeneratedTypeBuilderImpl(packageName, genTypeName);
index d7a3707eaa4f522121be3bebb8d8db13357f9a00..864ee25a24833432055442b45795ee122ac06c39 100644 (file)
@@ -31,9 +31,9 @@ final class ModuleToGenType {
     }
 
     static Map<Module, ModuleContext> generate(final Module module, Map<String, Map<String, GeneratedTypeBuilder>>
-            genTypeBuilders, final SchemaContext schemaContext, TypeProvider typeProvider, final boolean verboseClassComments) {
+            genTypeBuilders, final SchemaContext schemaContext, TypeProvider typeProvider, Map<Module,
+            ModuleContext> genCtx, final boolean verboseClassComments) {
 
-        Map<Module, ModuleContext> genCtx = new HashMap<>();
         genCtx.put(module, new ModuleContext());
         genCtx = allTypeDefinitionsToGenTypes(module, genCtx, typeProvider);
 
index 217eff14d2b4a7a8773809eae6e6e38d089aad8e..fa761e9015986e218c7bdd4f463dc8f64bbbb572 100644 (file)
@@ -19,7 +19,6 @@ import java.text.SimpleDateFormat;
 import java.util.Set;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
-import org.opendaylight.mdsal.binding.javav2.spec.runtime.BindingNamespaceType;
 import org.opendaylight.yangtools.yang.model.api.Module;
 
 /**
@@ -121,7 +120,7 @@ public final class BindingMapping {
         packageNameBuilder.append("rev");
         packageNameBuilder.append(PACKAGE_DATE_FORMAT.get().format(module.getRevision()));
 
-        //seems to be duplicate call, because normalizing is run again on full packagename + localName
+        //seems to be duplicate call, because normalizing is run again on full package name + localName
         //return normalizePackageName(packageNameBuilder.toString(), null);
         return packageNameBuilder.toString();
     }
@@ -148,9 +147,7 @@ public final class BindingMapping {
                 builder.append('.');
             }
 
-            //TODO: incorporate use of PackageNameNormalizer (impl in progress)
-            //TODO: to not to worry about various characters in identifiers,
-            //TODO: relying on https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html
+            //FIXME: use https://git.opendaylight.org/gerrit/#/c/52007/ when merged
 
             //FIXME: delete this custom check when naming convention patch above is merged
             if (Character.isDigit(p.charAt(0)) || BindingMapping.JAVA_RESERVED_WORDS.contains(p)) {