From 901a6b53a0cb8756bb3790d26730150f17316e08 Mon Sep 17 00:00:00 2001 From: Martin Vitez Date: Mon, 2 Sep 2013 13:46:03 +0200 Subject: [PATCH] Minor code refactoring in YangParserImpl. 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 --- .../generator/test/GeneratorJavaFileTest.java | 46 ++++++--------- yang/yang-parser-impl/pom.xml | 1 - .../parser/builder/api/UsesNodeBuilder.java | 2 - .../builder/impl/UsesNodeBuilderImpl.java | 12 ++-- .../yang/parser/impl/YangParserImpl.java | 57 +++++++++---------- .../yangtools/yang/parser/util/CopyUtils.java | 3 +- 6 files changed, 52 insertions(+), 69 deletions(-) diff --git a/code-generator/binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/test/GeneratorJavaFileTest.java b/code-generator/binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/test/GeneratorJavaFileTest.java index 9da8e7a07d..dda478681d 100644 --- a/code-generator/binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/test/GeneratorJavaFileTest.java +++ b/code-generator/binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/test/GeneratorJavaFileTest.java @@ -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 types = new HashSet(); - 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 types = new HashSet(); + 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 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 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 compilationUnits = fileManager - .getJavaFileObjectsFromFiles(filesList); - Iterable options = Arrays.asList(new String[]{"-d", COMPILER_OUTPUT_PATH}); - boolean compiled = compiler.getTask(null, null, null, options, null, - compilationUnits).call(); + Iterable compilationUnits = fileManager.getJavaFileObjectsFromFiles(filesList); + Iterable 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 getJavaFiles(File directory) { @@ -179,4 +170,3 @@ public class GeneratorJavaFileTest { return result; } } - diff --git a/yang/yang-parser-impl/pom.xml b/yang/yang-parser-impl/pom.xml index 1fe896a242..189c7cb7c0 100644 --- a/yang/yang-parser-impl/pom.xml +++ b/yang/yang-parser-impl/pom.xml @@ -49,7 +49,6 @@ com.google.guava guava - 14.0.1 junit diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/UsesNodeBuilder.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/UsesNodeBuilder.java index 344d8623dc..a861c45f62 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/UsesNodeBuilder.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/UsesNodeBuilder.java @@ -27,8 +27,6 @@ public interface UsesNodeBuilder extends GroupingMember, Builder { SchemaPath getGroupingPath(); - void setGroupingPath(SchemaPath groupingPath); - GroupingDefinition getGroupingDefinition(); void setGroupingDefinition(GroupingDefinition groupingDefinition); diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/UsesNodeBuilderImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/UsesNodeBuilderImpl.java index 05dd940551..94416471bd 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/UsesNodeBuilderImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/UsesNodeBuilderImpl.java @@ -56,7 +56,6 @@ public final class UsesNodeBuilderImpl extends AbstractBuilder implements UsesNo private boolean dataCollected; private boolean parentUpdated; - @Override public boolean isCopy() { return isCopy; @@ -147,11 +146,6 @@ public final class UsesNodeBuilderImpl extends AbstractBuilder implements UsesNo return groupingPath; } - @Override - public void setGroupingPath(SchemaPath groupingPath) { - this.groupingPath = groupingPath; - } - @Override public GroupingDefinition getGroupingDefinition() { return groupingDefinition; @@ -160,6 +154,9 @@ public final class UsesNodeBuilderImpl extends AbstractBuilder implements UsesNo @Override public void setGroupingDefinition(GroupingDefinition groupingDefinition) { this.groupingDefinition = groupingDefinition; + if (groupingDefinition != null) { + this.groupingPath = groupingDefinition.getPath(); + } } @Override @@ -170,6 +167,9 @@ public final class UsesNodeBuilderImpl extends AbstractBuilder implements UsesNo @Override public void setGrouping(GroupingBuilder grouping) { this.groupingBuilder = grouping; + if (groupingBuilder != null) { + this.groupingPath = groupingBuilder.getPath(); + } } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/YangParserImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/YangParserImpl.java index 75fa0f2f2f..7cd05c0534 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/YangParserImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/YangParserImpl.java @@ -272,15 +272,9 @@ public final class YangParserImpl implements YangModelParser { } private Map build(final Map> modules) { - findUsesTargets(modules, null); - // fix unresolved nodes - for (Map.Entry> entry : modules.entrySet()) { - for (Map.Entry 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 buildWithContext(final Map> modules, - SchemaContext context) { - findUsesTargets(modules, context); - + final SchemaContext context) { // fix unresolved nodes - for (Map.Entry> entry : modules.entrySet()) { - for (Map.Entry 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> modules, final ModuleBuilder builder) { - resolveDirtyNodes(modules, builder); - resolveIdentities(modules, builder); - resolveUnknownNodes(modules, builder); + private void resolveDirtyNodes(final Map> modules) { + for (Map.Entry> entry : modules.entrySet()) { + for (Map.Entry childEntry : entry.getValue().entrySet()) { + final ModuleBuilder module = childEntry.getValue(); + resolveDirtyNodes(modules, module); + resolveIdentities(modules, module); + resolveUnknownNodes(modules, module); + } + } } - private void fixUnresolvedNodesWithContext(final Map> modules, - final ModuleBuilder builder, final SchemaContext context) { - resolveDirtyNodesWithContext(modules, builder, context); - resolveIdentitiesWithContext(modules, builder, context); - resolveUnknownNodesWithContext(modules, builder, context); + private void resolvedDirtyNodesWithContext(final Map> modules, + final SchemaContext context) { + for (Map.Entry> entry : modules.entrySet()) { + for (Map.Entry 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; } diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/CopyUtils.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/CopyUtils.java index f651e4c6af..65c81b9e91 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/CopyUtils.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/CopyUtils.java @@ -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()); -- 2.36.6