class HttpTraceContext implements TextMapPropagator {

  @Override
  public <C /*>>> extends @NonNull Object*/> Context extract(
      Context context, C carrier, Getter<C> getter) {
    Objects.requireNonNull(context, "context");
    Objects.requireNonNull(carrier, "carrier");
    Objects.requireNonNull(getter, "getter");

    SpanContext spanContext = extractImpl(carrier, getter);
    if (!spanContext.isValid()) {
      return context;
    }

    return TracingContextUtils.withSpan(DefaultSpan.create(spanContext), context);
  }

  private  HttpTraceContext();

}