Example usage for org.springframework.http MediaType removeQualityValue

List of usage examples for org.springframework.http MediaType removeQualityValue

Introduction

In this page you can find the example usage for org.springframework.http MediaType removeQualityValue.

Prototype

public MediaType removeQualityValue() 

Source Link

Document

Return a replica of this instance with its quality value removed.

Usage

From source file:org.craftercms.commons.rest.HttpMessageConvertingResponseWriter.java

public <T> void writeWithMessageConverters(T returnValue, HttpServletRequest request,
        HttpServletResponse response) throws IOException, HttpMediaTypeNotAcceptableException {
    Class<?> returnValueClass = returnValue.getClass();
    List<MediaType> requestedMediaTypes = getAcceptableMediaTypes(request);
    List<MediaType> producibleMediaTypes = getProducibleMediaTypes(returnValueClass);

    Set<MediaType> compatibleMediaTypes = new LinkedHashSet<MediaType>();
    for (MediaType r : requestedMediaTypes) {
        for (MediaType p : producibleMediaTypes) {
            if (r.isCompatibleWith(p)) {
                compatibleMediaTypes.add(getMostSpecificMediaType(r, p));
            }/*from   w  ww .j a va  2 s  .c  o m*/
        }
    }
    if (compatibleMediaTypes.isEmpty()) {
        throw new HttpMediaTypeNotAcceptableException(producibleMediaTypes);
    }

    List<MediaType> mediaTypes = new ArrayList<MediaType>(compatibleMediaTypes);
    MediaType.sortBySpecificityAndQuality(mediaTypes);

    MediaType selectedMediaType = null;
    for (MediaType mediaType : mediaTypes) {
        if (mediaType.isConcrete()) {
            selectedMediaType = mediaType;
            break;
        } else if (mediaType.equals(MediaType.ALL) || mediaType.equals(MEDIA_TYPE_APPLICATION)) {
            selectedMediaType = MediaType.APPLICATION_OCTET_STREAM;
            break;
        }
    }

    if (selectedMediaType != null) {
        selectedMediaType = selectedMediaType.removeQualityValue();
        for (HttpMessageConverter<?> messageConverter : messageConverters) {
            if (messageConverter.canWrite(returnValueClass, selectedMediaType)) {
                ((HttpMessageConverter<T>) messageConverter).write(returnValue, selectedMediaType,
                        new ServletServerHttpResponse(response));

                logger.debug(LOG_KEY_WRITTEN_WITH_MESSAGE_CONVERTER, returnValue, selectedMediaType,
                        messageConverter);

                return;
            }
        }
    }

    throw new HttpMediaTypeNotAcceptableException(allSupportedMediaTypes);
}

From source file:org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerAdapter.java

@SuppressWarnings("unchecked")
private void handle(HttpServletRequest request, HttpServletResponse response, Endpoint<?> endpoint)
        throws Exception {

    Object result = endpoint.invoke();
    Class<?> resultClass = result.getClass();

    List<MediaType> mediaTypes = getMediaTypes(request, endpoint, resultClass);
    MediaType selectedMediaType = selectMediaType(mediaTypes);

    ServletServerHttpResponse outputMessage = new ServletServerHttpResponse(response);
    try {//from  w w  w.ja v  a  2s  .c o m
        if (selectedMediaType != null) {
            selectedMediaType = selectedMediaType.removeQualityValue();
            for (HttpMessageConverter<?> messageConverter : this.messageConverters) {
                if (messageConverter.canWrite(resultClass, selectedMediaType)) {
                    ((HttpMessageConverter<Object>) messageConverter).write(result, selectedMediaType,
                            outputMessage);
                    if (this.logger.isDebugEnabled()) {
                        this.logger.debug("Written [" + result + "] as \"" + selectedMediaType + "\" using ["
                                + messageConverter + "]");
                    }
                    return;
                }
            }
        }
        throw new HttpMediaTypeNotAcceptableException(this.allSupportedMediaTypes);
    } finally {
        outputMessage.close();
    }
}