private Optional<Class<? extends Condition>> getConditionClass( Function<ConnectConditionClassResolver.Entry, Optional<Class<? extends Condition>>> mapper) { List<ConnectConditionClassResolver> resolvers = pluginAccessor.getEnabledModulesByClass(ConnectConditionClassResolver.class); return resolvers .stream() .flatMap(resolver -> resolver.getEntries().stream()) .map(mapper) .filter(Optional::isPresent).map(Optional::get) .findFirst(); } }
private Optional<Class<? extends Condition>> getConditionClass(String conditionName, Function<ConnectConditionClassResolver.Entry, Optional<Class<? extends Condition>>> mapper) { List<ConnectConditionClassResolver> resolvers = pluginAccessor.getEnabledModulesByClass(ConnectConditionClassResolver.class); return resolvers.stream() .flatMap(resolver -> resolver.getEntriesForConditionName(conditionName).stream()) .filter(entry -> entry.getConditionName().equals(conditionName)) .map(mapper) .filter(Optional::isPresent) .findFirst() .flatMap(Function.identity()); } }