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.instrumentation.asm; 9 10 import org.codehaus.aspectwerkz.annotation.instrumentation.AttributeEnhancer; 11 import org.objectweb.asm.Attribute; 12 import org.objectweb.asm.ByteVector; 13 import org.objectweb.asm.ClassReader; 14 import org.objectweb.asm.ClassWriter; 15 import org.objectweb.asm.Label; 16 17 /** 18 * Custom annotation wrapper annotation. 19 * This Java 1.5 style annotation is used to wrap user defined / 1.3 / 1.4 annotations instead of using a custom attribute. 20 * This allow to add user defined annotations as RuntimeInvisibleAnnotations and thus to support several annotations and 21 * annotations introduction. 22 * </br> 23 * See AW-234. 24 * 25 * @author <a HREF="mailto:jboner@codehaus.org">Jonas BonŽr </a> 26 * @author <a HREF="mailto:alex AT gnilux DOT com">Alexandre Vasseur</a> 27 */ 28 public interface CustomAttribute { 29 30 public final static String TYPE = "Lorg/codehaus/aspectwerkz/annotation/instrumentation/asm/CustomAttribute;"; 31 32 /** 33 * Default value is a String, containing the BASE64 encoding of the serialized data of the user 34 * custom annotation (proxy instance). 35 * 36 * @return 37 */ 38 public String value(); 39 40 }