private <T extends DataNodeContainer & ActionNodeContainer> void actionsToGenType(final ModuleContext context,
final Type parent, final T parentSchema, final Type keyType, final boolean inGrouping) {
for (final ActionDefinition action : parentSchema.getActions()) {
+ if (action.isAugmenting()) {
+ continue;
+ }
+
final GeneratedType input;
final GeneratedType output;
if (action.isAddedByUses()) {
addImplementedInterfaceFromUses(augSchema, augTypeBuilder);
augSchemaNodeToMethods(context, augTypeBuilder, augSchema.getChildNodes(), inGrouping);
+ actionsToGenType(context, augTypeBuilder, augSchema, null, inGrouping);
augmentBuilders.put(augTypeName, augTypeBuilder);
if (!augSchema.getChildNodes().isEmpty()) {
context.addTypeToAugmentation(augTypeBuilder, augSchema);
-
}
+
context.addAugmentType(augTypeBuilder);
return augTypeBuilder;
}
--- /dev/null
+/*
+ * Copyright (c) 2019 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.mdsal.binding.generator.impl;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import com.google.common.collect.ImmutableSet;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+import org.junit.Test;
+import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
+import org.opendaylight.mdsal.binding.model.api.Type;
+import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
+
+public class Mdsal459Test {
+
+ @Test
+ public void testAugmentedAction() {
+ final List<Type> types = new BindingGeneratorImpl().generateTypes(
+ YangParserTestUtils.parseYangResourceDirectory("/mdsal-459/"));
+ assertNotNull(types);
+ assertEquals(6, types.size());
+
+ final Set<JavaTypeName> typeNames = types.stream().map(Type::getIdentifier).collect(Collectors.toSet());
+ assertEquals(ImmutableSet.of(
+ JavaTypeName.create("org.opendaylight.yang.gen.v1.base.norev", "Foo"),
+ JavaTypeName.create("org.opendaylight.yang.gen.v1.base.norev", "BaseData"),
+ JavaTypeName.create("org.opendaylight.yang.gen.v1.aug.norev", "Foo1"),
+ JavaTypeName.create("org.opendaylight.yang.gen.v1.aug.norev.foo", "Bar"),
+ JavaTypeName.create("org.opendaylight.yang.gen.v1.aug.norev.foo.bar", "Output"),
+ JavaTypeName.create("org.opendaylight.yang.gen.v1.aug.norev.foo.bar", "Input")), typeNames);
+ }
+}