001 002package io.vrap.rmf.base.client; 003 004import java.util.Map; 005 006public interface ContextApiHttpClient extends AutoCloseable, ApiHttpClient, ContextAware<ContextApiHttpClient> { 007 static ContextApiHttpClient of(final ApiHttpClient client) { 008 return new ContextApiHttpClientImpl(client); 009 } 010 011 static ContextApiHttpClient of(final ApiHttpClient client, final Map<Object, Object> contextMap) { 012 return new ContextApiHttpClientImpl(client, contextMap); 013 } 014 015 static ContextApiHttpClient of(final ApiHttpClient client, final Context context) { 016 return new ContextApiHttpClientImpl(client).addContext(context); 017 } 018 019 static ContextApiHttpClient withMdc(final ApiHttpClient client) { 020 return new ContextApiHttpClientImpl(client).addContext(new MDCContext()); 021 } 022 023 static ContextApiHttpClient of(final ApiHttpClient client, final boolean closeHttpClient) { 024 return new ContextApiHttpClientImpl(client, closeHttpClient); 025 } 026 027 static ContextApiHttpClient of(final ApiHttpClient client, final Map<Object, Object> contextMap, 028 final boolean closeHttpClient) { 029 return new ContextApiHttpClientImpl(client, contextMap, closeHttpClient); 030 } 031 032 static ContextApiHttpClient of(final ApiHttpClient client, final Context context, final boolean closeHttpClient) { 033 return new ContextApiHttpClientImpl(client, closeHttpClient).addContext(context); 034 } 035 036 static ContextApiHttpClient withMdc(final ApiHttpClient client, final boolean closeHttpClient) { 037 return new ContextApiHttpClientImpl(client, closeHttpClient).addContext(new MDCContext()); 038 } 039}