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>
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;
@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);
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"));
assertTrue(filesList.contains("Type4Builder.java"));
}
- @Ignore
@Test
public void compilationTest() throws Exception {
final YangParserImpl parser = new YangParserImpl();
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();
}
/**
* 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) {
return result;
}
}
-
<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
SchemaPath getGroupingPath();
- void setGroupingPath(SchemaPath groupingPath);
-
GroupingDefinition getGroupingDefinition();
void setGroupingDefinition(GroupingDefinition groupingDefinition);
private boolean dataCollected;\r
private boolean parentUpdated;\r
\r
-\r
@Override\r
public boolean isCopy() {\r
return isCopy;\r
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
@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
@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
}
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);
}
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);
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);
+ }
+ }
}
/**
}
/**
- * Find target grouping for all uses nodes.
+ * Find and add reference of uses target grouping.
*
* @param modules
* all loaded modules
GroupingDefinition targetGroupingDefinition = GroupingUtils.getTargetGroupingFromContext(usesNode,
module, context);
usesNode.setGroupingDefinition(targetGroupingDefinition);
- usesNode.setGroupingPath(targetGroupingDefinition.getPath());
}
} else {
usesNode.setGrouping(targetGroupingBuilder);
- usesNode.setGroupingPath(targetGroupingBuilder.getPath());
}
}
}
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;
}
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());