IntroductionFor each intercepted invocation a series of 0 or more Interceptors may be given a chance to handle the invocation directly or perform operations before or after the invocation. The XInvoke framework has a pluggable facility for creating the series of Interceptors which are assigned to each intercepted object (aka Proxy). See the InterceptorManager javadocs for the definition of this facility. However it is common for an implementation to allow a mechanism via which different Interceptors can be applied to different classes, methods, instances or even different invocations. While each different implementation may allocate Interceptors via different mechanisms this document attempts to document a standard set of selector expressions that can be used to designate which interceptors get invoked by different invocations. Usually each Interceptor or Interceptor series will be associated with a selector and if the selector expression returns true the invocations will pass through the Interceptor or Interceptor series. Selector Expression ListThe following is a list of expressions that can be statically evaluated based on the interfaces that are interccepted and the class of the target. This is cecause most InterceptorManagers allocate Interceptors based on static analysis for performance reasons. Note that some of the expressions refer to "Attributes". Attributes are a mechanism for attaching metadata to program elements (such as classes, methods and fields). More details can be found on the MetaClass website.
|