01: /**************************************************************************************
02: * Copyright (c) Jonas BonŽr, Alexandre Vasseur. All rights reserved. *
03: * http://aspectwerkz.codehaus.org *
04: * ---------------------------------------------------------------------------------- *
05: * The software in this package is published under the terms of the LGPL license *
06: * a copy of which has been included with this distribution in the license.txt file. *
07: **************************************************************************************/package org.codehaus.aspectwerkz.annotation;
08:
09: /**
10: * Mixin annotation
11: * Annotate the mixin implementation class
12: *
13: * @author <a href="mailto:alex@gnilux.com">Alexandre Vasseur</a>
14: */
15: public @interface Mixin {
16: /**
17: * Pointcut the mixin applies to (within / hasMethod / hasField)
18: * When used, all others elements are assumed to their default value
19: */
20: public String value() default "";
21:
22: /**
23: * Pointcut the mixin applies to (within / hasMethod / hasField)
24: * Used when deploymentModel / isTransient is specified
25: */
26: public String pointcut() default "";
27:
28: /**
29: * Mixin deployment model.
30: * Defaults to ?? Only "perClass" and "perInstance" are supported for now
31: * @see org.codehaus.aspectwerkz.DeploymentModel
32: */
33: public String deploymentModel() default "perInstance";
34:
35: /**
36: * True if mixin should behave as transient and not be serialized alongside the class it is introduced to.
37: * Defaults to false.
38: */
39: public boolean isTransient() default false;
40: }
|