in dbus-java-utils/src/main/java/org/freedesktop/dbus/utils/generator/StructTreeBuilder.java [46:85]
public String buildStructClasses(String _dbusSig, String _structName, ClassBuilderInfo _clzBldr, List<ClassBuilderInfo> _generatedClasses) throws DBusException {
if (StringUtil.isBlank(_dbusSig) || _generatedClasses == null) {
return null;
}
List<StructTree> structTree = buildTree(_dbusSig);
String parentType = null;
if (!structTree.isEmpty() && Collection.class.isAssignableFrom(structTree.get(0).getDataType())) {
parentType = structTree.get(0).getDataType().getName();
structTree = structTree.get(0).getSubType();
}
int cnt = 0;
for (StructTree treeItem : structTree) {
ClassBuilderInfo info = new ClassBuilderInfo();
info.setClassName(StringUtil.upperCaseFirstChar(_structName));
info.setPackageName(_clzBldr.getPackageName());
info.setExtendClass(Struct.class.getName());
info.setClassType(ClassType.CLASS);
_clzBldr.getImports().add(info.getFqcn());
_generatedClasses.add(info);
if (cnt == 0 && parentType != null) {
parentType += "<" + info.getClassName() + ">";
cnt++;
}
if (!treeItem.getSubType().isEmpty()) {
createNested(treeItem.getSubType(), info, _generatedClasses);
}
_clzBldr.getImports().addAll(info.getImports());
}
return parentType == null ? _clzBldr.getPackageName() + "." + _structName : parentType;
}