All Downloads are FREE. Search and download functionalities are using the official Maven repository.

pl.allegro.tech.hermes.common.http.ExtraRequestHeadersCollector Maven / Gradle / Ivy

The newest version!
package pl.allegro.tech.hermes.common.http;

import java.util.Collections;
import java.util.Map;
import java.util.Set;
import java.util.function.BiConsumer;
import java.util.function.BinaryOperator;
import java.util.function.Function;
import java.util.function.Supplier;
import java.util.stream.Collector;

public class ExtraRequestHeadersCollector
    implements Collector, StringBuilder, String> {
  private ExtraRequestHeadersCollector() {}

  public static ExtraRequestHeadersCollector extraRequestHeadersCollector() {
    return new ExtraRequestHeadersCollector();
  }

  @Override
  public Supplier supplier() {
    return StringBuilder::new;
  }

  @Override
  public BiConsumer> accumulator() {
    return (StringBuilder accumulator, Map.Entry entry) -> {
      accumulator.append(entry.getKey());
      accumulator.append(": ");
      accumulator.append(entry.getValue());
      accumulator.append('\n');
    };
  }

  @Override
  public BinaryOperator combiner() {
    return StringBuilder::append;
  }

  @Override
  public Function finisher() {
    return (StringBuilder acc) -> {
      if (acc.length() > 0) {
        acc.setLength(acc.length() - 1);
      }
      return acc.toString();
    };
  }

  @Override
  public Set characteristics() {
    return Collections.emptySet();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy