default boolean isDiscriminatorFieldInThisTypeOrAnyChild()

in code-generation/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/definitions/ComplexTypeDefinition.java [181:200]


    default boolean isDiscriminatorFieldInThisTypeOrAnyChild(String discriminatorName) {
        // Check if there's any expression in this type's typeSwitch, that uses
        // the given property name as variable (aka being a discriminator)
        boolean isDiscriminatorName = getSwitchField()
                .map(SwitchField::getDiscriminatorExpressions)
                .stream()
                .flatMap(List::stream)
                .map(Term::getDiscriminatorName)
                .anyMatch(curDiscriminatorName -> curDiscriminatorName.equals(discriminatorName));
        if (isDiscriminatorName) {
            return true;
        }

        // If we've checked this level, check any children.
        return getSwitchField()
                .map(SwitchField::getCases)
                .stream()
                .flatMap(List::stream)
                .anyMatch(subType -> subType.isDiscriminatorFieldInThisTypeOrAnyChild(discriminatorName));
    }