if (parent == null) {
it.addImplementsType(BindingTypes.TREE_NODE);
} else {
- if (parent instanceof ListSchemaNode) {
+ if (!(schemaNode instanceof ListSchemaNode) ||
+ ((ListSchemaNode) schemaNode).getKeyDefinition().isEmpty()) {
it.addImplementsType(parameterizedTypeFor(BindingTypes.TREE_CHILD_NODE, parent, parameterizedTypeFor
- (BindingTypes.IDENTIFIABLE_ITEM, parent)));
- } else {
- it.addImplementsType(parameterizedTypeFor(BindingTypes.TREE_CHILD_NODE, parent, parameterizedTypeFor
- (BindingTypes.ITEM, parent)));
- it.addImplementsType(parameterizedTypeFor(BindingTypes.INSTANTIABLE, it));
+ (BindingTypes.ITEM, it)));
}
+ it.addImplementsType(parameterizedTypeFor(BindingTypes.INSTANTIABLE, it));
}
if (!(schemaNode instanceof GroupingDefinition)) {
final Type identifiableMarker = Types.parameterizedTypeFor(IDENTIFIABLE, genTOBuilder);
genTOBuilder.addImplementsType(IDENTIFIER);
genType.addImplementsType(identifiableMarker);
+ genType.addImplementsType(parameterizedTypeFor(BindingTypes.TREE_CHILD_NODE, parent, parameterizedTypeFor
+ (BindingTypes.IDENTIFIABLE_ITEM, genType, genTOBuilder)));
+
}
for (final DataSchemaNode schemaNode : node.getChildNodes()) {
final GeneratedPropertyBuilder prop = new GeneratedPropertyBuilderImpl("serialVersionUID");
prop.setValue(Long.toString(computeDefaultSUID(genTOBuilder)));
genTOBuilder.setSUID(prop);
-
typeBuildersToGenTypes(module, genType, genTOBuilder.toInstance(), genCtx, namespaceType);
genCtx.get(module).addGeneratedTOBuilder(node.getPath(), genTOBuilder);
}