1 /* 2 * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved. 3 */ 4 package com.tc.aspectwerkz.annotation; 5 6 /** 7 * Mixin annotation 8 * Annotate the mixin implementation class 9 * 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 } 42