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