Binding generator v2 - Identities fix 26/59426/3
authorMartin Ciglan <martin.ciglan@pantheon.tech>
Tue, 20 Jun 2017 21:25:48 +0000 (23:25 +0200)
committerMartin Ciglan <martin.ciglan@pantheon.tech>
Mon, 26 Jun 2017 19:28:50 +0000 (19:28 +0000)
- if identity is once generated as base identity
of some other one, don't generate it again.
- this prevents unnecessary calls to JavaIdentifierNormalizer
and fixes compilablity issue (IdentityName.java vs. IdentityName1.java, etc..)
- code clean-up, javadoc fixes

Change-Id: Ie83f22d66bef06fd9a3b1850c09da8a3f9436062
Signed-off-by: Martin Ciglan <martin.ciglan@pantheon.tech>
binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/GenHelperUtil.java

index d3570d4a997b1f9a2c2f697f7728f4bfde3f3a38..4ca6c01b6a8148f8d7205ffb254619500d6aaed8 100644 (file)
@@ -108,8 +108,8 @@ final class GenHelperUtil {
      *
      * @param module
      *            Module object from which builder will be created
-     * @param genCtx
-     * @param verboseClassComments
+     * @param genCtx generated context
+     * @param verboseClassComments verbosity switch
      *
      * @return <code>GeneratedTypeBuilder</code> which is internal
      *         representation of the module
@@ -137,7 +137,7 @@ final class GenHelperUtil {
      * @param postfix
      *            string which is added to the module class name representation
      *            as suffix
-     * @param verboseClassComments
+     * @param verboseClassComments verbosity switch
      * @return instance of GeneratedTypeBuilder which represents
      *         <code>module</code>.
      * @throws IllegalArgumentException
@@ -773,7 +773,6 @@ final class GenHelperUtil {
      * @param module module
      * @param typeProvider type provider instance
      * @param genCtx actual generated context
-     * @param genCtx actual generated context
      * @return boolean value
      *         <ul>
      *         <li>true - if <code>node</code>, <code>typeBuilder</code>,
@@ -1190,10 +1189,14 @@ final class GenHelperUtil {
             boolean verboseClassComments, final Map<String, Map<String, GeneratedTypeBuilder>> genTypeBuilders,
             final TypeProvider typeProvider, Map<QName, GeneratedTOBuilderImpl> generatedIdentities) {
 
-        final String packageName = BindingGeneratorUtil.packageNameForGeneratedType(basePackageName, identity.getPath(),
-            BindingNamespaceType.Identity);
-        final GeneratedTOBuilderImpl newType = new GeneratedTOBuilderImpl(packageName,
-                identity.getQName().getLocalName());
+        //check first if identity has been resolved as base identity of some other one
+        GeneratedTOBuilderImpl newType = generatedIdentities.get(identity.getQName());
+
+        if (newType == null) {
+            final String packageName = BindingGeneratorUtil.packageNameForGeneratedType(basePackageName, identity.getPath(),
+                    BindingNamespaceType.Identity);
+            newType = new GeneratedTOBuilderImpl(packageName, identity.getQName().getLocalName(), true, false);
+        }
 
         final Set<IdentitySchemaNode> baseIdentities = identity.getBaseIdentities();
         if (baseIdentities.size() == 0) {