01: /*
02: * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved.
03: */
04: package com.tc.aspectwerkz.annotation;
05:
06: /**
07: * Mixin annotation
08: * Annotate the mixin implementation class
09: *
10: * @author <a href="mailto:alex@gnilux.com">Alexandre Vasseur</a>
11: */
12: public interface Mixin {
13: /**
14: * Pointcut the mixin applies to (within / hasMethod / hasField)
15: * When used, all others elements are assumed to their default value
16: */
17: public String value();
18:
19: /**
20: * Pointcut the mixin applies to (within / hasMethod / hasField)
21: * Used when deploymentModel / isTransient is specified
22: */
23: public String pointcut();
24:
25: /**
26: * Mixin deployment model.
27: * Defaults to "perInstance". Only "perClass" and "perInstance" are supported for now
28: *
29: * @org.codehaus.backport175.DefaultValue("perInstance")
30: * @see com.tc.aspectwerkz.DeploymentModel
31: */
32: public String deploymentModel();
33:
34: /**
35: * True if mixin should behave as transient and not be serialized alongside the class it is introduced to.
36: * Defaults to false.
37: *
38: * @org.codehaus.backport175.DefaultValue(false)
39: */
40: public boolean isTransient();
41: }
|