List<ServiceInfo> build(DocServiceFilter filter) {
            return methods
                    .asMap().entrySet().stream()
                    .map(entry -> {
                        final String serviceName = entry.getKey().getFullName();
                        final List<MethodInfo> methodInfos =
                                entry.getValue().stream()
                                     .filter(m -> filter.test(NAME, serviceName, m.getName()))
                                     .map(method -> newMethodInfo(serviceName, method,
                                                                  ImmutableSet.copyOf(endpoints.get(method))))
                                     .collect(toImmutableList());
                        if (methodInfos.isEmpty()) {
                            return null;
                        } else {
                            return new ServiceInfo(serviceName, methodInfos);
                        }
                    })
                    .filter(Objects::nonNull)
                    .collect(toImmutableList());
        }
{@link DocServicePlugin} implementation that supports {@link GrpcService}s.
grpc/src/main/java/com/linecorp/armeria/internal/server/grpc/GrpcDocServicePlugin.java