private List filterImplementDataSource()

in seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/ConnectorServiceImpl.java [255:300]


    private List<DataSourceInfo> filterImplementDataSource(
            List<ConnectorInfo> connectorInfoS,
            BusinessMode businessMode,
            SceneMode sceneMode,
            PluginType pluginType) {
        List<DataSourceInfo> dataSourceList = new ArrayList<>();
        connectorInfoS.forEach(
                connectorInfo -> {
                    String connectorName = connectorInfo.getPluginIdentifier().getPluginName();
                    ConnectorDataSourceMapperConfig.ConnectorMapper connectorMapper =
                            dataSourceMapperConfig
                                    .getConnectorDatasourceMappers()
                                    .get(connectorName);

                    if (null != connectorMapper) {
                        connectorMapper
                                .getDataSources()
                                .forEach(
                                        datasourceName -> {
                                            Optional<List<SceneMode>> sceneModes =
                                                    dataSourceMapperConfig.supportedSceneMode(
                                                            datasourceName, pluginType);
                                            Optional<List<BusinessMode>> businessModes =
                                                    dataSourceMapperConfig.supportedBusinessMode(
                                                            datasourceName, pluginType);
                                            if ((businessMode == null
                                                            || businessModes.isPresent()
                                                                    && businessModes
                                                                            .get()
                                                                            .contains(businessMode))
                                                    && (sceneMode == null
                                                            || (sceneModes.isPresent()
                                                                    && sceneModes
                                                                            .get()
                                                                            .contains(
                                                                                    sceneMode)))) {
                                                dataSourceList.add(
                                                        new DataSourceInfo(
                                                                connectorInfo, datasourceName));
                                            }
                                        });
                    }
                });

        return dataSourceList;
    }