Class InterceptorExecutor<T>

  • All Implemented Interfaces:
    javax.ws.rs.ext.InterceptorContext, PropertiesDelegate
    Direct Known Subclasses:
    ReaderInterceptorExecutor, WriterInterceptorExecutor

    abstract class InterceptorExecutor<T>
    extends java.lang.Object
    implements javax.ws.rs.ext.InterceptorContext, PropertiesDelegate
    Abstract class with implementation of InterceptorContext which is common for ReaderInterceptorContext and WriterInterceptorContext implementations.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private static class  InterceptorExecutor.InterceptorTimestampPair<T>
      Holder of interceptor instance and timestamp of the interceptor invocation (in ns).
    • Constructor Summary

      Constructors 
      Constructor Description
      InterceptorExecutor​(java.lang.Class<?> rawType, java.lang.reflect.Type type, java.lang.annotation.Annotation[] annotations, javax.ws.rs.core.MediaType mediaType, PropertiesDelegate propertiesDelegate)
      Constructor initializes common properties of this abstract class.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void clearLastTracedInterceptor()
      Clear last traced interceptor information.
      java.lang.annotation.Annotation[] getAnnotations()  
      java.lang.reflect.Type getGenericType()  
      javax.ws.rs.core.MediaType getMediaType()  
      java.lang.Object getProperty​(java.lang.String name)
      Returns the property with the given name registered in the current request/response exchange context, or null if there is no property by that name.
      java.util.Collection<java.lang.String> getPropertyNames()
      Returns an immutable collection containing the property names available within the context of the current request/response exchange context.
      protected TracingLogger getTracingLogger()
      Get tracing logger instance configured in via properties.
      java.lang.Class getType()  
      void removeProperty​(java.lang.String name)
      Removes a property with the given name from the current request/response exchange context.
      void setAnnotations​(java.lang.annotation.Annotation[] annotations)  
      void setGenericType​(java.lang.reflect.Type genericType)  
      void setMediaType​(javax.ws.rs.core.MediaType mediaType)  
      void setProperty​(java.lang.String name, java.lang.Object object)
      Binds an object to a given property name in the current request/response exchange context.
      void setType​(java.lang.Class type)  
      protected void traceAfter​(T interceptor, TracingLogger.Event event)
      Tracing support - log invocation of interceptor AFTER context.proceed() call.
      protected void traceBefore​(T interceptor, TracingLogger.Event event)
      Tracing support - log invocation of interceptor BEFORE context.proceed() call.
      • Methods inherited from class java.lang.Object

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

      • annotations

        private java.lang.annotation.Annotation[] annotations
      • type

        private java.lang.Class<?> type
      • genericType

        private java.lang.reflect.Type genericType
      • mediaType

        private javax.ws.rs.core.MediaType mediaType
    • Constructor Detail

      • InterceptorExecutor

        public InterceptorExecutor​(java.lang.Class<?> rawType,
                                   java.lang.reflect.Type type,
                                   java.lang.annotation.Annotation[] annotations,
                                   javax.ws.rs.core.MediaType mediaType,
                                   PropertiesDelegate propertiesDelegate)
        Constructor initializes common properties of this abstract class.
        Parameters:
        rawType - raw Java entity type.
        type - generic Java entity type.
        annotations - Annotations on the formal declaration of the resource method parameter that is the target of the message body conversion. See InterceptorContext.getAnnotations().
        mediaType - MediaType of HTTP entity. See InterceptorContext.getMediaType().
        propertiesDelegate - request-scoped properties delegate.
    • Method Detail

      • getProperty

        public java.lang.Object getProperty​(java.lang.String name)
        Description copied from interface: PropertiesDelegate
        Returns the property with the given name registered in the current request/response exchange context, or null if there is no property by that name.

        A property allows a JAX-RS filters and interceptors to exchange additional custom information not already provided by this interface.

        A list of supported properties can be retrieved using PropertiesDelegate.getPropertyNames(). Custom property names should follow the same convention as package names.

        Specified by:
        getProperty in interface javax.ws.rs.ext.InterceptorContext
        Specified by:
        getProperty in interface PropertiesDelegate
        Parameters:
        name - a String specifying the name of the property.
        Returns:
        an Object containing the value of the property, or null if no property exists matching the given name.
        See Also:
        PropertiesDelegate.getPropertyNames()
      • setProperty

        public void setProperty​(java.lang.String name,
                                java.lang.Object object)
        Description copied from interface: PropertiesDelegate
        Binds an object to a given property name in the current request/response exchange context. If the name specified is already used for a property, this method will replace the value of the property with the new value.

        A property allows a JAX-RS filters and interceptors to exchange additional custom information not already provided by this interface.

        A list of supported properties can be retrieved using PropertiesDelegate.getPropertyNames(). Custom property names should follow the same convention as package names.

        If a null value is passed, the effect is the same as calling the PropertiesDelegate.removeProperty(String) method.

        Specified by:
        setProperty in interface javax.ws.rs.ext.InterceptorContext
        Specified by:
        setProperty in interface PropertiesDelegate
        Parameters:
        name - a String specifying the name of the property.
        object - an Object representing the property to be bound.
      • removeProperty

        public void removeProperty​(java.lang.String name)
        Description copied from interface: PropertiesDelegate
        Removes a property with the given name from the current request/response exchange context. After removal, subsequent calls to PropertiesDelegate.getProperty(java.lang.String) to retrieve the property value will return null.
        Specified by:
        removeProperty in interface javax.ws.rs.ext.InterceptorContext
        Specified by:
        removeProperty in interface PropertiesDelegate
        Parameters:
        name - a String specifying the name of the property to be removed.
      • getTracingLogger

        protected final TracingLogger getTracingLogger()
        Get tracing logger instance configured in via properties.
        Returns:
        tracing logger instance.
      • traceBefore

        protected final void traceBefore​(T interceptor,
                                         TracingLogger.Event event)
        Tracing support - log invocation of interceptor BEFORE context.proceed() call.
        Parameters:
        interceptor - invoked interceptor
        event - event type to be tested
      • traceAfter

        protected final void traceAfter​(T interceptor,
                                        TracingLogger.Event event)
        Tracing support - log invocation of interceptor AFTER context.proceed() call.
        Parameters:
        interceptor - invoked interceptor
        event - event type to be tested
      • clearLastTracedInterceptor

        protected final void clearLastTracedInterceptor()
        Clear last traced interceptor information.
      • getAnnotations

        public java.lang.annotation.Annotation[] getAnnotations()
        Specified by:
        getAnnotations in interface javax.ws.rs.ext.InterceptorContext
      • setAnnotations

        public void setAnnotations​(java.lang.annotation.Annotation[] annotations)
        Specified by:
        setAnnotations in interface javax.ws.rs.ext.InterceptorContext
      • getType

        public java.lang.Class getType()
        Specified by:
        getType in interface javax.ws.rs.ext.InterceptorContext
      • setType

        public void setType​(java.lang.Class type)
        Specified by:
        setType in interface javax.ws.rs.ext.InterceptorContext
      • getGenericType

        public java.lang.reflect.Type getGenericType()
        Specified by:
        getGenericType in interface javax.ws.rs.ext.InterceptorContext
      • setGenericType

        public void setGenericType​(java.lang.reflect.Type genericType)
        Specified by:
        setGenericType in interface javax.ws.rs.ext.InterceptorContext
      • getMediaType

        public javax.ws.rs.core.MediaType getMediaType()
        Specified by:
        getMediaType in interface javax.ws.rs.ext.InterceptorContext
      • setMediaType

        public void setMediaType​(javax.ws.rs.core.MediaType mediaType)
        Specified by:
        setMediaType in interface javax.ws.rs.ext.InterceptorContext