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 }