All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.aopalliance.intercept.ConstructorInterceptor Maven / Gradle / Ivy

Go to download

Everything needed to run a comprehensive dev environment. Just type X_ and pick a service from autocomplete; new dev modules will be added as they are built. The only dev service not included in the uber jar is xapi-dev-maven, as it includes all runtime dependencies of maven, adding ~4 seconds to build time, and 6 megabytes to the final output jar size (without xapi-dev-maven, it's ~1MB).

The newest version!
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; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy