Class JsonWithPaddingInterceptor

  • All Implemented Interfaces:
    javax.ws.rs.ext.WriterInterceptor

    @Priority(4100)
    public class JsonWithPaddingInterceptor
    extends java.lang.Object
    implements javax.ws.rs.ext.WriterInterceptor
    A WriterInterceptor implementation for JSONP format. This interceptor wraps a JSON stream obtained by a underlying JSON provider into a callback function that can be defined by the JSONP annotation.
    See Also:
    JSONP
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void aroundWriteTo​(javax.ws.rs.ext.WriterInterceptorContext context)  
      private java.lang.String getCallbackName​(JSONP jsonp)
      Returns a JavaScript callback name to wrap the JSON entity into.
      private JSONP getJsonpAnnotation​(javax.ws.rs.ext.InterceptorContext context)
      Returns a JSONP annotation of the resource method responsible for handling the current request.
      private boolean isJavascript​(javax.ws.rs.core.MediaType mediaType)
      Returns a flag whether the given media type belongs to the group of JavaScript media types.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • JAVASCRIPT_TYPES

        private static final java.util.Map<java.lang.String,​java.util.Set<java.lang.String>> JAVASCRIPT_TYPES
      • containerRequestProvider

        @Inject
        private javax.inject.Provider<ContainerRequest> containerRequestProvider
    • Constructor Detail

      • JsonWithPaddingInterceptor

        public JsonWithPaddingInterceptor()
    • Method Detail

      • aroundWriteTo

        public void aroundWriteTo​(javax.ws.rs.ext.WriterInterceptorContext context)
                           throws java.io.IOException,
                                  javax.ws.rs.WebApplicationException
        Specified by:
        aroundWriteTo in interface javax.ws.rs.ext.WriterInterceptor
        Throws:
        java.io.IOException
        javax.ws.rs.WebApplicationException
      • isJavascript

        private boolean isJavascript​(javax.ws.rs.core.MediaType mediaType)
        Returns a flag whether the given media type belongs to the group of JavaScript media types.
        Parameters:
        mediaType - media type to check.
        Returns:
        true if the given media type is a JavaScript type, false otherwise (or if the media type is null}
      • getCallbackName

        private java.lang.String getCallbackName​(JSONP jsonp)
        Returns a JavaScript callback name to wrap the JSON entity into. The callback name is determined from the JSONP annotation.
        Parameters:
        jsonp - JSONP annotation to determine the callback name from.
        Returns:
        a JavaScript callback name.
      • getJsonpAnnotation

        private JSONP getJsonpAnnotation​(javax.ws.rs.ext.InterceptorContext context)
        Returns a JSONP annotation of the resource method responsible for handling the current request.
        Parameters:
        context - an interceptor context to obtain the annotation from.
        Returns:
        JSONP annotation or null if the resource method is not annotated with this annotation.
        See Also:
        InterceptorContext.getAnnotations()