default TypeReference getArgumentType()

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();
    }