/** * Build a ResponseType using given a parameterized type. * @param <T> Response type * @param type Type argument * @param rawType Raw type * @return ResponseType */ static <T> ResponseType<T> of(Class<?> type, Class<?> rawType) { return new ResponseTypeImpl<>(type, rawType); }
/** * Create a new {@link RestClient} instance using given <code>classLoder</code> and the implementation whith given * fully qualified class name. * @param fullyQualifiedClassName The {@link RestClient} implementation fully qualified class name to obtain * @param classLoader The {@link ClassLoader} to use * @return A new {@link RestClient} instance * @throws RestClientCreationException If the implementation which corresponds to given fully qualified class name * is not available or a instance creation error occurred */ static RestClient create(String fullyQualifiedClassName, ClassLoader classLoader) { return RestClientFactoryRegistry.INSTANCE.createRestClient(fullyQualifiedClassName, classLoader); }
@Override public <T, R> ResponseEntity<T> invokeForSuccess(HttpMethod method, RequestEntity<R> requestEntity, ResponseType<T> responseType) { return invoker.invoke(this, method, requestEntity, responseType, true); }
@Override public R accept(String... mediaTypes) { if (mediaTypes != null) { header(HttpHeaders.ACCEPT, mediaTypes); } return getActualDefinition(); }
/** * Build a RequestEntity. * @param <T> Payload type * @param mediaType Media type * @param payload Entity payload * @return RequestEntity */ static <T> RequestEntity<T> build(String mediaType, T payload) { return new DefaultRequestEntity<>(mediaType, payload); }
@Override public R target(URI baseUri) { ObjectUtils.argumentNotNull(baseUri, "Base URI target must be not null"); this.baseRequestURI = baseUri; return getActualDefinition(); }
/** * Gets a {@link FormBuilder} to build form parameters name-value(s) map to be used with form data type entity. * @return FormBuilder * @see #form(Map) */ static FormBuilder formBuilder() { return new DefaultRequestEntity.DefaultFormBuilder(); }
@Override public R acceptLanguage(Locale... locales) { String[] values = null; if (locales != null) { values = new String[locales.length]; for (int i = 0; i < locales.length; i++) { values[i] = locales[i].toLanguageTag(); } } return acceptLanguage(values); }
@Override public R acceptCharset(Charset... charsets) { String[] values = null; if (charsets != null) { values = new String[charsets.length]; for (int i = 0; i < charsets.length; i++) { values[i] = charsets[i].name(); } } return acceptCharset(values); }
@Override public R accept(MediaType... mediaTypes) { String[] values = null; if (mediaTypes != null) { values = new String[mediaTypes.length]; for (int i = 0; i < mediaTypes.length; i++) { values[i] = mediaTypes[i].toString(); } } return accept(values); }
@Override public R authorizationBearer(String bearerToken) { ObjectUtils.argumentNotNull(bearerToken, "Authorization bearer token must be not null"); return header(HttpHeaders.AUTHORIZATION, HttpHeaders.SCHEME_BEARER + " " + bearerToken); }
@Override public R acceptLanguage(String... locales) { if (locales != null) { header(HttpHeaders.ACCEPT_LANGUAGE, locales); } return getActualDefinition(); }
/** * Build a {@link MediaType#APPLICATION_FORM_URLENCODED} entity * @param formData Form data name-value(s) map * @return RequestEntity */ static RequestEntity<Map<String, List<String>>> form(final Map<String, List<String>> formData) { return new DefaultRequestEntity<>(MediaType.APPLICATION_FORM_URLENCODED.toString(), formData); }
/** * Build a ResponseType using given simple type. * @param <T> Response type * @param type Actual response type * @return ResponseType */ static <T> ResponseType<T> of(Class<T> type) { return new ResponseTypeImpl<>(type); }
@Override public <T, R> ResponseEntity<T> invoke(HttpMethod method, RequestEntity<R> requestEntity, ResponseType<T> responseType) { return invoker.invoke(this, method, requestEntity, responseType, false); }
@SuppressWarnings({ "unchecked", "rawtypes" }) @Override public <P extends Property> R propertySet(P... properties) { this.propertySet = PropertySet.of(properties); return getActualDefinition(); }
@Override public R acceptEncoding(String... encodings) { if (encodings != null) { header(HttpHeaders.ACCEPT_ENCODING, encodings); } return getActualDefinition(); }
/** * Build a {@link MediaType#APPLICATION_XML} entity. * @param <T> Payload type * @param payload Entity payload * @return RequestEntity */ static <T> RequestEntity<T> xml(T payload) { return new DefaultRequestEntity<>(MediaType.APPLICATION_XML.toString(), payload); }
@Override public R acceptCharset(String... charsets) { if (charsets != null) { header(HttpHeaders.ACCEPT_CHARSET, charsets); } return getActualDefinition(); }
/** * Build a {@link MediaType#APPLICATION_JSON} entity. * @param <T> Payload type * @param payload Entity payload * @return RequestEntity */ static <T> RequestEntity<T> json(T payload) { return new DefaultRequestEntity<>(MediaType.APPLICATION_JSON.toString(), payload); }