private static List validateMutuallyExclusive()

in seatunnel-server/seatunnel-dynamicform/src/main/java/org/apache/seatunnel/app/dynamicforms/FormStructureValidate.java [228:269]


    private static List<String> validateMutuallyExclusive(@NonNull FormStructure formStructure) {
        List<String> errorMessageList = new ArrayList();
        Map<String, List<String>> exclusiveMap = new HashMap<>();
        // find all mutually-exclusive options
        formStructure
                .getForms()
                .forEach(
                        formOption -> {
                            if (formOption.getValidate() != null
                                    && formOption.getValidate()
                                            instanceof MutuallyExclusiveValidate) {
                                exclusiveMap.put(
                                        formOption.getField(),
                                        ((MutuallyExclusiveValidate) formOption.getValidate())
                                                .getFields());
                            }
                        });

        exclusiveMap.forEach(
                (k, v) -> {
                    if (v == null || !v.contains(k)) {
                        errorMessageList.add(
                                String.format(
                                        "MutuallyExclusiveValidate Option field[%s] must in validate field list",
                                        k));
                    }

                    if (v != null) {
                        v.forEach(
                                field -> {
                                    if (!exclusiveMap.keySet().contains(field)) {
                                        errorMessageList.add(
                                                String.format(
                                                        "MutuallyExclusiveValidate Option field[%s] , validate field[%s] can not found in form options",
                                                        k, field));
                                    }
                                });
                    }
                });

        return errorMessageList;
    }