in code-generation/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/references/NonSimpleTypeReference.java [40:54]
default TypeReference getArgumentType(int index) {
TypeDefinition typeDefinition = getTypeDefinition();
List<Argument> parserArguments = new LinkedList<>();
typeDefinition.asComplexTypeDefinition()
.map(complexTypeDefinition ->
complexTypeDefinition.getParentType().map(parentType ->
parserArguments.addAll(parentType.getParserArguments().orElse(Collections.emptyList()))
)
);
parserArguments.addAll(typeDefinition.getParserArguments().orElse(Collections.emptyList()));
if (parserArguments.size() <= index) {
throw new IllegalArgumentException("Type " + getName() + " specifies too few parser arguments. Available:" + parserArguments.size() + " index:" + index);
}
return parserArguments.get(index).getType();
}