Package org.aopalliance.intercept

# Interface ConstructorInterceptor

All Superinterfaces:
  `Advice`, `Interceptor`

public interface ConstructorInterceptor extends Interceptor
Intercepts the construction of a new object.

The user should implement the `construct(ConstructorInvocation)` method to modify the original behavior. For example, 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");
         }
       }
     }

Author:
  Rod Johnson

## Method Summary

Modifier and Type
Method
Description
`Object`
`construct(ConstructorInvocation invocation)`
Implement this method to perform extra treatments before and after the construction of a new object.

## Method Details

### construct

@Nonnull Object construct(ConstructorInvocation invocation) throws Throwable
Implement this method to perform extra treatments before and after the construction of a new object. Polite implementations would certainly like to invoke `Joinpoint.proceed()`.

Parameters:
  `invocation` - the construction joinpoint
Returns:
  the newly created object, which is also the result of the call to `Joinpoint.proceed()`; might be replaced by the interceptor
Throws:
  `Throwable` - if the interceptors or the target object throws an exception