org.aopalliance.intercept.ConstructorInterceptor Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ehcache Show documentation
Show all versions of ehcache Show documentation
Ehcache is an open source, standards-based cache used to boost performance,
offload the database and simplify scalability. Ehcache is robust, proven and full-featured and
this has made it the most widely-used Java-based cache.
package org.aopalliance.intercept;
/**
* Intercepts the construction of a new object.
*
* The user should implement the {@link
* #construct(ConstructorInvocation)} method to modify the original
* behavior. E.g. the following class implements a singleton
* interceptor (allows only one unique instance for the intercepted
* class):
*
*
* class DebuggingInterceptor implements ConstructorInterceptor {
* Object instance=null;
*
* Object construct(ConstructorInvocation i) throws Throwable {
* if(instance==null) {
* return instance=i.proceed();
* } else {
* throw new Exception("singleton does not allow multiple instance");
* }
* }
* }
*
*/
public interface ConstructorInterceptor extends Interceptor
{
/**
* Implement this method to perform extra treatments before and
* after the consrution of a new object. Polite implementations
* would certainly like to invoke {@link Joinpoint#proceed()}.
*
* @param invocation the construction joinpoint
* @return the newly created object, which is also the result of
* the call to {@link Joinpoint#proceed()}, might be replaced by
* the interceptor.
*
* @throws Throwable if the interceptors or the
* target-object throws an exception. */
Object construct(ConstructorInvocation invocation) throws Throwable;
}