Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package javax.interceptor;
 
 import static java.lang.annotation.ElementType.TYPE;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
Explicitly specify that a class is an interceptor class. Note that in many cases, it is possible for the container to implicitly determine that a class is an interceptor class without the presence of this annotation; in particular, a deployment descriptor or @Interceptors annotation can also identify an interceptor class.
public @interface Interceptor {
    

Priorities that define the order in which interceptors are invoked. These values should be used with the Priority annotation.

  • Interceptors defined by platform specifications should have priority values in the range PLATFORM_BEFORE up until LIBRARY_BEFORE, or starting at PLATFORM_AFTER.
  • Interceptors defined by extension libraries should have priority values in the range LIBRARY_BEFORE up until APPLICATION, or LIBRARY_AFTER up until PLATFORM_AFTER.
  • Interceptors defined by applications should have priority values in the range APPLICATION up until LIBRARY_AFTER.

An interceptor that must be invoked before or after another defined interceptor can choose any appropriate value.

Interceptors with smaller priority values are called first. If more than one interceptor has the same priority, the relative order of these interceptor is undefined.

For example, an extension library might define an interceptor like this:

 @Priority(Interceptor.Priority.LIBRARY_BEFORE+10)
 @Interceptor
 public class ValidationInterceptor { ... }
 

Since:
Interceptors 1.2
    public static class Priority {
    private Priority() { }  // don't allow instances

    
Start of range for early interceptors defined by platform specifications.
    public static final int PLATFORM_BEFORE = 0;

    
Start of range for early interceptors defined by extension libraries.
    public static final int LIBRARY_BEFORE = 1000;

    
Start of range for interceptors defined by applications.
    public static final int APPLICATION = 2000;

    
Start of range for late interceptors defined by extension libraries.
    public static final int LIBRARY_AFTER = 3000;

    
Start of range for late interceptors defined by platform specifications.
    public static final int PLATFORM_AFTER = 4000;
    }
New to GrepCode? Check out our FAQ X