import static org.opendaylight.yangtools.yang.model.util.SchemaContextUtil.*;\r
import org.opendaylight.yangtools.yang.parser.util.ModuleDependencySort\r
import org.opendaylight.yangtools.yang.model.util.ExtendedType;\r
-\r
public class BindingGeneratorImpl implements BindingGenerator {\r
/**\r
* Outter key represents the package name. Outter value represents map of\r
val augType = augTypeBuilder.toInstance();\r
genTypes.add(augType);\r
} else {\r
- val choiceTarget = targetSchemaNode as ChoiceNode;\r
- val choiceCaseNodes = choiceTarget.cases;\r
- genTypes.addAll(\r
- generateTypesFromAugmentedChoiceCases(augmentPackageName, targetType, choiceCaseNodes));\r
+ genTypes.addAll(generateTypesFromAugmentedChoiceCases(augmentPackageName, targetType, augChildNodes, targetSchemaNode as ChoiceNode));\r
}\r
genTypes.addAll(augmentationBodyToGenTypes(augmentPackageName, augChildNodes));\r
}\r
* </ul>\r
*/\r
private def List<GeneratedType> generateTypesFromAugmentedChoiceCases(String basePackageName, Type refChoiceType,\r
- Set<ChoiceCaseNode> caseNodes) {\r
+ Set<DataSchemaNode> caseNodes, ChoiceNode targetNode) {\r
checkArgument(basePackageName !== null, "Base Package Name cannot be NULL.");\r
checkArgument(refChoiceType !== null, "Referenced Choice Type cannot be NULL.");\r
checkArgument(caseNodes !== null, "Set of Choice Case Nodes cannot be NULL.");\r
\r
val List<GeneratedType> generatedTypes = new ArrayList();\r
for (caseNode : caseNodes) {\r
- if(caseNode !== null && caseNode.isAugmenting()) {\r
+ if(caseNode !== null) {\r
val packageName = packageNameForGeneratedType(basePackageName, caseNode.path);\r
val caseTypeBuilder = addDefaultInterfaceDefinition(packageName, caseNode);\r
caseTypeBuilder.addImplementsType(refChoiceType);\r
\r
- val Set<DataSchemaNode> childNodes = caseNode.childNodes;\r
- if(childNodes !== null) {\r
- resolveDataSchemaNodesAugmented(basePackageName, caseTypeBuilder, childNodes);\r
+ if (caseNode instanceof DataNodeContainer) {\r
+ val DataNodeContainer dataNodeCase = caseNode as DataNodeContainer;\r
+ val Set<DataSchemaNode> childNodes = dataNodeCase.childNodes;\r
+ if(childNodes !== null) {\r
+ resolveDataSchemaNodesAugmented(basePackageName, caseTypeBuilder, childNodes);\r
+ }\r
+ } else {\r
+ val ChoiceCaseNode node = targetNode.getCaseNodeByName(caseNode.getQName().getLocalName());\r
+ val Set<DataSchemaNode> childNodes = node.childNodes;\r
+ if(childNodes !== null) {\r
+ resolveDataSchemaNodesAugmented(basePackageName, caseTypeBuilder, childNodes);\r
+ }\r
}\r
+ \r
generatedTypes.add(caseTypeBuilder.toInstance());\r
}\r
}\r