Minor code refactoring in YangParserImpl. 73/1073/1
authorMartin Vitez <mvitez@cisco.com>
Mon, 2 Sep 2013 11:46:03 +0000 (13:46 +0200)
committerMartin Vitez <mvitez@cisco.com>
Mon, 2 Sep 2013 11:50:03 +0000 (13:50 +0200)
Removed setGroupingPath method from UsesNodeBuilder.
Fixed overriding managed version warning in yang-parser-impl/pom.xml
Un-ignored test in GeneratorJavaFileTest.

Signed-off-by: Martin Vitez <mvitez@cisco.com>
code-generator/binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/test/GeneratorJavaFileTest.java
yang/yang-parser-impl/pom.xml
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/UsesNodeBuilder.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/UsesNodeBuilderImpl.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/YangParserImpl.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/CopyUtils.java

index 9da8e7a07d5b5765d17737bcbe28c2d2f5488c70..dda478681db57e087e7bdd781ed6462ea5db00ba 100644 (file)
@@ -24,7 +24,6 @@ import javax.tools.ToolProvider;
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.opendaylight.yangtools.binding.generator.util.BindingTypes;
 import org.opendaylight.yangtools.binding.generator.util.Types;
@@ -58,26 +57,23 @@ public class GeneratorJavaFileTest {
 
     @After
     public void cleanUp() {
-        if(testDir.exists()) {
+        if (testDir.exists()) {
             deleteTestDir(testDir);
         }
-        if(COMPILER_OUTPUT.exists()) {
+        if (COMPILER_OUTPUT.exists()) {
             deleteTestDir(COMPILER_OUTPUT);
         }
-        if(GENERATOR_OUTPUT.exists()) {
+        if (GENERATOR_OUTPUT.exists()) {
             deleteTestDir(GENERATOR_OUTPUT);
         }
     }
 
     @Test
     public void test() throws IOException {
-       final Set<GeneratedType> types = new HashSet<GeneratedType>();
-        GeneratedType t1 = createGeneratedType(
-                "org.opendaylight.controller.gen", "Type1");
-        GeneratedType t2 = createGeneratedType(
-                "org.opendaylight.controller.gen", "Type2");
-        GeneratedType t3 = createGeneratedType(
-                "org.opendaylight.controller.gen", "Type3");
+        final Set<GeneratedType> types = new HashSet<GeneratedType>();
+        GeneratedType t1 = createGeneratedType("org.opendaylight.controller.gen", "Type1");
+        GeneratedType t2 = createGeneratedType("org.opendaylight.controller.gen", "Type2");
+        GeneratedType t3 = createGeneratedType("org.opendaylight.controller.gen", "Type3");
         types.add(t1);
         types.add(t2);
         types.add(t3);
@@ -87,11 +83,10 @@ public class GeneratorJavaFileTest {
         GeneratorJavaFile generator = new GeneratorJavaFile(types);
         generator.generateToFile(new File(PATH));
 
-        String[] files = new File(PATH + FS + "org" + FS + "opendaylight" + FS
-                + "controller" + FS + "gen").list();
+        String[] files = new File(PATH + FS + "org" + FS + "opendaylight" + FS + "controller" + FS + "gen").list();
         List<String> filesList = Arrays.asList(files);
 
-        //assertEquals(5, files.length);
+        // assertEquals(5, files.length);
         assertTrue(filesList.contains("Type1.java"));
         assertTrue(filesList.contains("Type2.java"));
         assertTrue(filesList.contains("Type3.java"));
@@ -99,7 +94,6 @@ public class GeneratorJavaFileTest {
         assertTrue(filesList.contains("Type4Builder.java"));
     }
 
-    @Ignore
     @Test
     public void compilationTest() throws Exception {
         final YangParserImpl parser = new YangParserImpl();
@@ -122,27 +116,23 @@ public class GeneratorJavaFileTest {
         generator.generateToFile(new File(GENERATOR_OUTPUT_PATH));
 
         JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
-        StandardJavaFileManager fileManager = compiler.getStandardFileManager(
-                null, null, null);
+        StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);
 
         List<File> filesList = getJavaFiles(new File(GENERATOR_OUTPUT_PATH));
         File current = new File(System.getProperty("user.dir"));
         File parentPath = current.getParentFile().getParentFile();
-        File f = new File(parentPath,"yang/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/DataObject.java"
-        );
+        File f = new File(parentPath,
+                "yang/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/DataObject.java");
         filesList.add(f);
 
-        Iterable<? extends JavaFileObject> compilationUnits = fileManager
-                .getJavaFileObjectsFromFiles(filesList);
-        Iterable<String> options = Arrays.asList(new String[]{"-d", COMPILER_OUTPUT_PATH});
-        boolean compiled = compiler.getTask(null, null, null, options, null,
-                compilationUnits).call();
+        Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjectsFromFiles(filesList);
+        Iterable<String> options = Arrays.asList(new String[] { "-d", COMPILER_OUTPUT_PATH });
+        boolean compiled = compiler.getTask(null, null, null, options, null, compilationUnits).call();
         assertTrue(compiled);
     }
 
     private GeneratedType createGeneratedType(String pkgName, String name) {
-        GeneratedTypeBuilder builder = new GeneratedTypeBuilderImpl(pkgName,
-                name);
+        GeneratedTypeBuilder builder = new GeneratedTypeBuilderImpl(pkgName, name);
         builder.addImplementsType(BindingTypes.DATA_OBJECT);
         return builder.toInstance();
     }
@@ -161,7 +151,8 @@ public class GeneratorJavaFileTest {
     /**
      * Search recursively given directory for *.java files.
      *
-     * @param directory directory to search
+     * @param directory
+     *            directory to search
      * @return List of java files found
      */
     private List<File> getJavaFiles(File directory) {
@@ -179,4 +170,3 @@ public class GeneratorJavaFileTest {
         return result;
     }
 }
-
index 1fe896a242d1883bdf3978e4ee071f42f4f59913..189c7cb7c00851266a4a781c1e02dea64e237aa6 100644 (file)
@@ -49,7 +49,6 @@
         <dependency>\r
             <groupId>com.google.guava</groupId>\r
             <artifactId>guava</artifactId>\r
-            <version>14.0.1</version>\r
         </dependency>\r
         <dependency>\r
             <groupId>junit</groupId>\r
index 344d8623dc57126c7698fb15aa1b9a1160377325..a861c45f62d56d5955a145e60ffac4741756bf07 100644 (file)
@@ -27,8 +27,6 @@ public interface UsesNodeBuilder extends GroupingMember, Builder {
 
     SchemaPath getGroupingPath();
 
-    void setGroupingPath(SchemaPath groupingPath);
-
     GroupingDefinition getGroupingDefinition();
 
     void setGroupingDefinition(GroupingDefinition groupingDefinition);
index 05dd940551757bbc74e74e6a4253769bd872abc8..94416471bd066dc29073f9b21dbe5e9e5a701f3c 100644 (file)
@@ -56,7 +56,6 @@ public final class UsesNodeBuilderImpl extends AbstractBuilder implements UsesNo
     private boolean dataCollected;\r
     private boolean parentUpdated;\r
 \r
-\r
     @Override\r
     public boolean isCopy() {\r
         return isCopy;\r
@@ -147,11 +146,6 @@ public final class UsesNodeBuilderImpl extends AbstractBuilder implements UsesNo
         return groupingPath;\r
     }\r
 \r
-    @Override\r
-    public void setGroupingPath(SchemaPath groupingPath) {\r
-        this.groupingPath = groupingPath;\r
-    }\r
-\r
     @Override\r
     public GroupingDefinition getGroupingDefinition() {\r
         return groupingDefinition;\r
@@ -160,6 +154,9 @@ public final class UsesNodeBuilderImpl extends AbstractBuilder implements UsesNo
     @Override\r
     public void setGroupingDefinition(GroupingDefinition groupingDefinition) {\r
         this.groupingDefinition = groupingDefinition;\r
+        if (groupingDefinition != null) {\r
+            this.groupingPath = groupingDefinition.getPath();\r
+        }\r
     }\r
 \r
     @Override\r
@@ -170,6 +167,9 @@ public final class UsesNodeBuilderImpl extends AbstractBuilder implements UsesNo
     @Override\r
     public void setGrouping(GroupingBuilder grouping) {\r
         this.groupingBuilder = grouping;\r
+        if (groupingBuilder != null) {\r
+            this.groupingPath = groupingBuilder.getPath();\r
+        }\r
     }\r
 \r
     @Override\r
index 75fa0f2f2f6dc6e81314588f117056bd2037ca5e..7cd05c0534ae12df6e133cf64020247b50834c6c 100644 (file)
@@ -272,15 +272,9 @@ public final class YangParserImpl implements YangModelParser {
     }
 
     private Map<ModuleBuilder, Module> build(final Map<String, TreeMap<Date, ModuleBuilder>> modules) {
-        findUsesTargets(modules, null);
-
         // fix unresolved nodes
-        for (Map.Entry<String, TreeMap<Date, ModuleBuilder>> entry : modules.entrySet()) {
-            for (Map.Entry<Date, ModuleBuilder> childEntry : entry.getValue().entrySet()) {
-                final ModuleBuilder moduleBuilder = childEntry.getValue();
-                fixUnresolvedNodes(modules, moduleBuilder);
-            }
-        }
+        findUsesTargets(modules, null);
+        resolveDirtyNodes(modules);
         resolveAugments(modules);
         resolveUses(modules);
         resolveDeviations(modules);
@@ -300,16 +294,10 @@ public final class YangParserImpl implements YangModelParser {
     }
 
     private Map<ModuleBuilder, Module> buildWithContext(final Map<String, TreeMap<Date, ModuleBuilder>> modules,
-            SchemaContext context) {
-        findUsesTargets(modules, context);
-
+            final SchemaContext context) {
         // fix unresolved nodes
-        for (Map.Entry<String, TreeMap<Date, ModuleBuilder>> entry : modules.entrySet()) {
-            for (Map.Entry<Date, ModuleBuilder> childEntry : entry.getValue().entrySet()) {
-                final ModuleBuilder moduleBuilder = childEntry.getValue();
-                fixUnresolvedNodesWithContext(modules, moduleBuilder, context);
-            }
-        }
+        findUsesTargets(modules, context);
+        resolvedDirtyNodesWithContext(modules, context);
         resolveAugmentsWithContext(modules, context);
         resolveUsesWithContext(modules, context);
         resolveDeviationsWithContext(modules, context);
@@ -328,17 +316,27 @@ public final class YangParserImpl implements YangModelParser {
         return result;
     }
 
-    private void fixUnresolvedNodes(final Map<String, TreeMap<Date, ModuleBuilder>> modules, final ModuleBuilder builder) {
-        resolveDirtyNodes(modules, builder);
-        resolveIdentities(modules, builder);
-        resolveUnknownNodes(modules, builder);
+    private void resolveDirtyNodes(final Map<String, TreeMap<Date, ModuleBuilder>> modules) {
+        for (Map.Entry<String, TreeMap<Date, ModuleBuilder>> entry : modules.entrySet()) {
+            for (Map.Entry<Date, ModuleBuilder> childEntry : entry.getValue().entrySet()) {
+                final ModuleBuilder module = childEntry.getValue();
+                resolveDirtyNodes(modules, module);
+                resolveIdentities(modules, module);
+                resolveUnknownNodes(modules, module);
+            }
+        }
     }
 
-    private void fixUnresolvedNodesWithContext(final Map<String, TreeMap<Date, ModuleBuilder>> modules,
-            final ModuleBuilder builder, final SchemaContext context) {
-        resolveDirtyNodesWithContext(modules, builder, context);
-        resolveIdentitiesWithContext(modules, builder, context);
-        resolveUnknownNodesWithContext(modules, builder, context);
+    private void resolvedDirtyNodesWithContext(final Map<String, TreeMap<Date, ModuleBuilder>> modules,
+            final SchemaContext context) {
+        for (Map.Entry<String, TreeMap<Date, ModuleBuilder>> entry : modules.entrySet()) {
+            for (Map.Entry<Date, ModuleBuilder> childEntry : entry.getValue().entrySet()) {
+                final ModuleBuilder module = childEntry.getValue();
+                resolveDirtyNodesWithContext(modules, module, context);
+                resolveIdentitiesWithContext(modules, module, context);
+                resolveUnknownNodesWithContext(modules, module, context);
+            }
+        }
     }
 
     /**
@@ -649,7 +647,7 @@ public final class YangParserImpl implements YangModelParser {
     }
 
     /**
-     * Find target grouping for all uses nodes.
+     * Find and add reference of uses target grouping.
      *
      * @param modules
      *            all loaded modules
@@ -676,11 +674,9 @@ public final class YangParserImpl implements YangModelParser {
                     GroupingDefinition targetGroupingDefinition = GroupingUtils.getTargetGroupingFromContext(usesNode,
                             module, context);
                     usesNode.setGroupingDefinition(targetGroupingDefinition);
-                    usesNode.setGroupingPath(targetGroupingDefinition.getPath());
                 }
             } else {
                 usesNode.setGrouping(targetGroupingBuilder);
-                usesNode.setGroupingPath(targetGroupingBuilder.getPath());
             }
         }
     }
@@ -819,7 +815,8 @@ public final class YangParserImpl implements YangModelParser {
                             usnb.getLine());
                     for (ExtensionDefinition e : dependentModule.getExtensionSchemaNodes()) {
                         if (e.getQName().getLocalName().equals(nodeType.getLocalName())) {
-                            usnb.setNodeType(new QName(e.getQName().getNamespace(),e.getQName().getRevision() , nodeType.getPrefix(), e.getQName().getLocalName()));
+                            usnb.setNodeType(new QName(e.getQName().getNamespace(), e.getQName().getRevision(),
+                                    nodeType.getPrefix(), e.getQName().getLocalName()));
                             usnb.setExtensionDefinition(e);
                             break;
                         }
index f651e4c6af4dd991acc0a64fa4dce795fa3d05e7..65c81b9e91f6e87d77896f9112c3d3d47036b3b8 100644 (file)
@@ -413,8 +413,7 @@ public class CopyUtils {
         UsesNodeBuilder copy = new UsesNodeBuilderImpl(newParent.getModuleName(), newParent.getLine(),
                 old.getGroupingName(), true);
         copy.setParent(newParent);
-        copy.setGroupingPath(old.getGroupingPath());
-        // TODO grouping vs grouping path?
+        copy.setGroupingDefinition(old.getGroupingDefinition());
         copy.setGrouping(old.getGroupingBuilder());
         copy.setAugmenting(old.isAugmenting());
         copy.setAddedByUses(old.isAddedByUses());