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 * A custom annotation-like to host AnnotationDefault attribute that host annotation defaulted values 12 * 13 * Note: Java 5 does not handles this as an annotation but as an attribute so this information 14 * will be visible in ASMClassInfo as an annotation but it is not a real one (fe won't extend Java 5 Annotation etc) 15 * 16 * @author <a href="mailto:alex AT gnilux DOT com">Alexandre Vasseur</a> 17 */ 18 public interface AnnotationDefault { 19 20 public final static String NAME = AnnotationDefault.class.getName().replace('/', '.'); 21 22 /*** 23 * The default value of the annotation element marked with the AnnotationDefault attribute 24 * Note: for Class it will be an instance of asm.Type 25 * 26 * @return 27 */ 28 public Object value(); 29 30 /*** 31 * Annotation implementation, since we will not use our Java 5 dynamic proxy based architecture for it 32 * 33 * @author <a href="mailto:alex AT gnilux DOT com">Alexandre Vasseur</a> 34 */ 35 static class AnnotationDefaultImpl implements AnnotationDefault, Annotation { 36 private final Object m_value; 37 38 public AnnotationDefaultImpl(Object value) { 39 m_value = value; 40 } 41 42 public Object value() { 43 return m_value; 44 } 45 46 public Class annotationType() { 47 return AnnotationDefault.class; 48 } 49 } 50 }