Java Code Examples for org.springframework.http.MediaType#sortBySpecificity()

The following examples show how to use org.springframework.http.MediaType#sortBySpecificity() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: AbstractMessageConverterMethodArgumentResolver.java    From spring-analysis-note with MIT License 5 votes vote down vote up
/**
 * Return the media types supported by all provided message converters sorted
 * by specificity via {@link MediaType#sortBySpecificity(List)}.
 */
private static List<MediaType> getAllSupportedMediaTypes(List<HttpMessageConverter<?>> messageConverters) {
	Set<MediaType> allSupportedMediaTypes = new LinkedHashSet<>();
	for (HttpMessageConverter<?> messageConverter : messageConverters) {
		allSupportedMediaTypes.addAll(messageConverter.getSupportedMediaTypes());
	}
	List<MediaType> result = new ArrayList<>(allSupportedMediaTypes);
	MediaType.sortBySpecificity(result);
	return Collections.unmodifiableList(result);
}
 
Example 2
Source File: AbstractMessageConverterMethodArgumentResolver.java    From java-technology-stack with MIT License 5 votes vote down vote up
/**
 * Return the media types supported by all provided message converters sorted
 * by specificity via {@link MediaType#sortBySpecificity(List)}.
 */
private static List<MediaType> getAllSupportedMediaTypes(List<HttpMessageConverter<?>> messageConverters) {
	Set<MediaType> allSupportedMediaTypes = new LinkedHashSet<>();
	for (HttpMessageConverter<?> messageConverter : messageConverters) {
		allSupportedMediaTypes.addAll(messageConverter.getSupportedMediaTypes());
	}
	List<MediaType> result = new ArrayList<>(allSupportedMediaTypes);
	MediaType.sortBySpecificity(result);
	return Collections.unmodifiableList(result);
}
 
Example 3
Source File: HttpMessageConverterResolver.java    From spring-cloud-alibaba with Apache License 2.0 5 votes vote down vote up
/**
 * Return the media types supported by all provided message converters sorted by
 * specificity via {@link MediaType#sortBySpecificity(List)}.
 * @param messageConverters list of converters
 * @return list of MediaTypes
 */
private List<MediaType> getAllSupportedMediaTypes(
		List<HttpMessageConverter<?>> messageConverters) {
	Set<MediaType> allSupportedMediaTypes = new LinkedHashSet<MediaType>();
	for (HttpMessageConverter<?> messageConverter : messageConverters) {
		allSupportedMediaTypes.addAll(messageConverter.getSupportedMediaTypes());
	}
	List<MediaType> result = new ArrayList<MediaType>(allSupportedMediaTypes);
	MediaType.sortBySpecificity(result);
	return unmodifiableList(result);
}
 
Example 4
Source File: AbstractMessageConverterMethodArgumentResolver.java    From lams with GNU General Public License v2.0 5 votes vote down vote up
/**
 * Return the media types supported by all provided message converters sorted
 * by specificity via {@link MediaType#sortBySpecificity(List)}.
 */
private static List<MediaType> getAllSupportedMediaTypes(List<HttpMessageConverter<?>> messageConverters) {
	Set<MediaType> allSupportedMediaTypes = new LinkedHashSet<MediaType>();
	for (HttpMessageConverter<?> messageConverter : messageConverters) {
		allSupportedMediaTypes.addAll(messageConverter.getSupportedMediaTypes());
	}
	List<MediaType> result = new ArrayList<MediaType>(allSupportedMediaTypes);
	MediaType.sortBySpecificity(result);
	return Collections.unmodifiableList(result);
}
 
Example 5
Source File: RestTemplate.java    From lams with GNU General Public License v2.0 5 votes vote down vote up
@Override
public void doWithRequest(ClientHttpRequest request) throws IOException {
	if (this.responseType != null) {
		Class<?> responseClass = null;
		if (this.responseType instanceof Class) {
			responseClass = (Class<?>) this.responseType;
		}
		List<MediaType> allSupportedMediaTypes = new ArrayList<MediaType>();
		for (HttpMessageConverter<?> converter : getMessageConverters()) {
			if (responseClass != null) {
				if (converter.canRead(responseClass, null)) {
					allSupportedMediaTypes.addAll(getSupportedMediaTypes(converter));
				}
			}
			else if (converter instanceof GenericHttpMessageConverter) {
				GenericHttpMessageConverter<?> genericConverter = (GenericHttpMessageConverter<?>) converter;
				if (genericConverter.canRead(this.responseType, null, null)) {
					allSupportedMediaTypes.addAll(getSupportedMediaTypes(converter));
				}
			}
		}
		if (!allSupportedMediaTypes.isEmpty()) {
			MediaType.sortBySpecificity(allSupportedMediaTypes);
			if (logger.isDebugEnabled()) {
				logger.debug("Setting request Accept header to " + allSupportedMediaTypes);
			}
			request.getHeaders().setAccept(allSupportedMediaTypes);
		}
	}
}
 
Example 6
Source File: AbstractMessageConverterMethodArgumentResolver.java    From spring4-understanding with Apache License 2.0 5 votes vote down vote up
/**
 * Return the media types supported by all provided message converters sorted
 * by specificity via {@link MediaType#sortBySpecificity(List)}.
 */
private static List<MediaType> getAllSupportedMediaTypes(List<HttpMessageConverter<?>> messageConverters) {
	Set<MediaType> allSupportedMediaTypes = new LinkedHashSet<MediaType>();
	for (HttpMessageConverter<?> messageConverter : messageConverters) {
		allSupportedMediaTypes.addAll(messageConverter.getSupportedMediaTypes());
	}
	List<MediaType> result = new ArrayList<MediaType>(allSupportedMediaTypes);
	MediaType.sortBySpecificity(result);
	return Collections.unmodifiableList(result);
}
 
Example 7
Source File: RestTemplate.java    From spring4-understanding with Apache License 2.0 5 votes vote down vote up
@Override
public void doWithRequest(ClientHttpRequest request) throws IOException {
	if (this.responseType != null) {
		Class<?> responseClass = null;
		if (this.responseType instanceof Class) {
			responseClass = (Class<?>) this.responseType;
		}
		List<MediaType> allSupportedMediaTypes = new ArrayList<MediaType>();
		for (HttpMessageConverter<?> converter : getMessageConverters()) {
			if (responseClass != null) {
				if (converter.canRead(responseClass, null)) {
					allSupportedMediaTypes.addAll(getSupportedMediaTypes(converter));
				}
			}
			else if (converter instanceof GenericHttpMessageConverter) {
				GenericHttpMessageConverter<?> genericConverter = (GenericHttpMessageConverter<?>) converter;
				if (genericConverter.canRead(this.responseType, null, null)) {
					allSupportedMediaTypes.addAll(getSupportedMediaTypes(converter));
				}
			}
		}
		if (!allSupportedMediaTypes.isEmpty()) {
			MediaType.sortBySpecificity(allSupportedMediaTypes);
			if (logger.isDebugEnabled()) {
				logger.debug("Setting request Accept header to " + allSupportedMediaTypes);
			}
			request.getHeaders().setAccept(allSupportedMediaTypes);
		}
	}
}