Class InterceptorExecutor<T>
- java.lang.Object
-
- org.glassfish.jersey.message.internal.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 ofInterceptorContext
which is common forReaderInterceptorContext
andWriterInterceptorContext
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).
-
Field Summary
Fields Modifier and Type Field Description private java.lang.annotation.Annotation[]
annotations
private java.lang.reflect.Type
genericType
private InterceptorExecutor.InterceptorTimestampPair<T>
lastTracedInterceptor
private javax.ws.rs.core.MediaType
mediaType
private PropertiesDelegate
propertiesDelegate
private TracingLogger
tracingLogger
private java.lang.Class<?>
type
-
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, ornull
if there is no property by that name.java.util.Collection<java.lang.String>
getPropertyNames()
Returns an immutablecollection
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.
-
-
-
Field Detail
-
propertiesDelegate
private final PropertiesDelegate propertiesDelegate
-
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
-
tracingLogger
private final TracingLogger tracingLogger
-
lastTracedInterceptor
private InterceptorExecutor.InterceptorTimestampPair<T> lastTracedInterceptor
-
-
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. SeeInterceptorContext.getAnnotations()
.mediaType
- MediaType of HTTP entity. SeeInterceptorContext.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, ornull
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 interfacejavax.ws.rs.ext.InterceptorContext
- Specified by:
getProperty
in interfacePropertiesDelegate
- Parameters:
name
- aString
specifying the name of the property.- Returns:
- an
Object
containing the value of the property, ornull
if no property exists matching the given name. - See Also:
PropertiesDelegate.getPropertyNames()
-
getPropertyNames
public java.util.Collection<java.lang.String> getPropertyNames()
Description copied from interface:PropertiesDelegate
Returns an immutablecollection
containing the property names available within the context of the current request/response exchange context.Use the
PropertiesDelegate.getProperty(java.lang.String)
method with a property name to get the value of a property.- Specified by:
getPropertyNames
in interfacejavax.ws.rs.ext.InterceptorContext
- Specified by:
getPropertyNames
in interfacePropertiesDelegate
- Returns:
- an immutable
collection
of property names. - See Also:
PropertiesDelegate.getProperty(java.lang.String)
-
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 thePropertiesDelegate.removeProperty(String)
method.- Specified by:
setProperty
in interfacejavax.ws.rs.ext.InterceptorContext
- Specified by:
setProperty
in interfacePropertiesDelegate
- Parameters:
name
- aString
specifying the name of the property.object
- anObject
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 toPropertiesDelegate.getProperty(java.lang.String)
to retrieve the property value will returnnull
.- Specified by:
removeProperty
in interfacejavax.ws.rs.ext.InterceptorContext
- Specified by:
removeProperty
in interfacePropertiesDelegate
- Parameters:
name
- aString
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 interceptorevent
- 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 interceptorevent
- 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 interfacejavax.ws.rs.ext.InterceptorContext
-
setAnnotations
public void setAnnotations(java.lang.annotation.Annotation[] annotations)
- Specified by:
setAnnotations
in interfacejavax.ws.rs.ext.InterceptorContext
-
getType
public java.lang.Class getType()
- Specified by:
getType
in interfacejavax.ws.rs.ext.InterceptorContext
-
setType
public void setType(java.lang.Class type)
- Specified by:
setType
in interfacejavax.ws.rs.ext.InterceptorContext
-
getGenericType
public java.lang.reflect.Type getGenericType()
- Specified by:
getGenericType
in interfacejavax.ws.rs.ext.InterceptorContext
-
setGenericType
public void setGenericType(java.lang.reflect.Type genericType)
- Specified by:
setGenericType
in interfacejavax.ws.rs.ext.InterceptorContext
-
getMediaType
public javax.ws.rs.core.MediaType getMediaType()
- Specified by:
getMediaType
in interfacejavax.ws.rs.ext.InterceptorContext
-
setMediaType
public void setMediaType(javax.ws.rs.core.MediaType mediaType)
- Specified by:
setMediaType
in interfacejavax.ws.rs.ext.InterceptorContext
-
-