if (node.augmenting || node.addedByUses) {
return null
}
- val packageName = packageNameForGeneratedType(basePackageName, (node).path)
+ val packageName = packageNameForGeneratedType(basePackageName, node.path)
val genType = addDefaultInterfaceDefinition(packageName, node, childOf)
if (node instanceof DataNodeContainer) {
genCtx.get(module).addChildNodeType(node.path, genType)
val gto = new GeneratedTOBuilderImpl(returnTypePkgName, returnTypeName).toInstance();
newType.setExtendsType(gto);
}
- newType.setAbstract(true);
- genCtx.get(module).addIdentityType(newType)
+ newType.setAbstract(true);\r
+ val qname = identity.QName;\r
+ newType.addConstant(QName.typeForClass,"QNAME",'''\r
+ org.opendaylight.yangtools.yang.common.QName.create("«qname.namespace»","«qname.formattedRevision»","«qname.localName»")\r
+ ''');
+ genCtx.get(module).addIdentityType(identity.QName,newType)
}
/**\r
"Failed to find target node from grouping for augmentation " + augSchema + " in module " +
module.name);
}
- }
+ }\r
if (targetSchemaNode !== null) {
var targetTypeBuilder = findChildNodeByPath(targetSchemaNode.path)
} while (result == null && !(parent instanceof Module));
if (result != null) {
- if (tmpPath.size == 1) {
+ if (tmpPath.size == 1) {\r
+ if (result != null && result.addedByUses) {\r
+ result = findOriginal(result);\r
+ }
return result;
} else {
var DataSchemaNode newParent = result;
tmpPath.remove(0);
for (name : tmpPath) {
newParent = (newParent as DataNodeContainer).getDataChildByName(name);
+ }\r
+ if (newParent != null && newParent.addedByUses) {\r
+ newParent = findOriginal(newParent);\r
}
return newParent;
}
checkArgument(basePackageName !== null, "Base Package Name cannot be NULL.");
checkArgument(choiceNode !== null, "Choice Schema Node cannot be NULL.");
- val packageName = packageNameForGeneratedType(basePackageName, choiceNode.path);
- val choiceTypeBuilder = addRawInterfaceDefinition(packageName, choiceNode);
- constructGetter(parent, choiceNode.QName.localName, choiceNode.description, choiceTypeBuilder);
- choiceTypeBuilder.addImplementsType(DataContainer.typeForClass);
- genCtx.get(module).addChildNodeType(choiceNode.path, choiceTypeBuilder)
- generateTypesFromChoiceCases(module, basePackageName, parent, choiceTypeBuilder.toInstance, choiceNode);
+ if (!choiceNode.addedByUses) {
+ val packageName = packageNameForGeneratedType(basePackageName, choiceNode.path);
+ val choiceTypeBuilder = addRawInterfaceDefinition(packageName, choiceNode);
+ constructGetter(parent, choiceNode.QName.localName, choiceNode.description, choiceTypeBuilder);
+ choiceTypeBuilder.addImplementsType(DataContainer.typeForClass);
+ genCtx.get(module).addChildNodeType(choiceNode.path, choiceTypeBuilder)
+ generateTypesFromChoiceCases(module, basePackageName, parent, choiceTypeBuilder.toInstance, choiceNode);
+ }
}
/**\r
nodeDesc = "";
}
if (nodeName !== null && !node.isAddedByUses()) {
- val TypeDefinition<?> type = node.type;
- val listType = Types.listTypeFor(typeProvider.javaTypeForSchemaDefinitionType(type, node));
+ val TypeDefinition<?> typeDef = node.type;\r
+ val parentModule = findParentModule(schemaContext, node);\r
+\r
+ var Type returnType = null;\r
+ if (typeDef instanceof EnumTypeDefinition) {\r
+ returnType = typeProvider.javaTypeForSchemaDefinitionType(typeDef, node);\r
+ val enumTypeDef = typeDef as EnumTypeDefinition;\r
+ val enumBuilder = resolveInnerEnumFromTypeDefinition(enumTypeDef, nodeName, typeBuilder);\r
+ returnType = new ReferencedTypeImpl(enumBuilder.packageName, enumBuilder.name);\r
+ (typeProvider as TypeProviderImpl).putReferencedType(node.path, returnType);\r
+ } else if (typeDef instanceof UnionType) {\r
+ val genTOBuilder = addTOToTypeBuilder(typeDef, typeBuilder, nodeName, node, parentModule);\r
+ returnType = new ReferencedTypeImpl(genTOBuilder.packageName, genTOBuilder.name);\r
+ } else if (typeDef instanceof BitsTypeDefinition) {\r
+ val genTOBuilder = addTOToTypeBuilder(typeDef, typeBuilder, nodeName, node, parentModule);\r
+ returnType = new ReferencedTypeImpl(genTOBuilder.packageName, genTOBuilder.name);\r
+ } else {\r
+ val Restrictions restrictions = BindingGeneratorUtil.getRestrictions(typeDef);\r
+ returnType = typeProvider.javaTypeForSchemaDefinitionType(typeDef, node, restrictions);\r
+ }\r
+
+ val listType = Types.listTypeFor(returnType);
constructGetter(typeBuilder, nodeName, nodeDesc, listType);
return true;
}
* @return generated TO builder for <code>typeDef</code>\r
*/
private def GeneratedTOBuilder addTOToTypeBuilder(TypeDefinition<?> typeDef, GeneratedTypeBuilder typeBuilder,
- String leafName, LeafSchemaNode leaf, Module parentModule) {
+ String leafName, DataSchemaNode leaf, Module parentModule) {
val classNameFromLeaf = parseToClassName(leafName);
val List<GeneratedTOBuilder> genTOBuilders = new ArrayList();
val packageName = typeBuilder.fullyQualifiedName;