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;