Package javassist.bytecode

# Class AnnotationDefaultAttribute

java.lang.Object
javassist.bytecode.AttributeInfo
javassist.bytecode.AnnotationDefaultAttribute

public class AnnotationDefaultAttribute extends AttributeInfo
A class representing `AnnotationDefault_attribute`.

For example, if you declare the following annotation type:

     @interface Author {
       String name() default "Shakespeare";
       int age() default 99;
     }

The defautl values of `name` and `age` are stored as annotation default attributes in `Author.class`. The following code snippet obtains the default value of `name`:

     ClassPool pool = ...
     CtClass cc = pool.get("Author");
     CtMethod cm = cc.getDeclaredMethod("age");
     MethodInfo minfo = cm.getMethodInfo();
     AnnotationDefaultAttribute ada
             = (AnnotationDefaultAttribute)
               minfo.getAttribute(AnnotationDefaultAttribute.tag);
     MemberValue value = ada.getDefaultValue());    // default value of age

If the following statement is executed after the code above, the default value of age is set to 80:

     ada.setDefaultValue(new IntegerMemberValue(minfo.getConstPool(), 80));

See Also:
  - `AnnotationsAttribute`
  - `MemberValue`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`tag`
The name of the `AnnotationDefault` attribute.

## Constructor Summary

Constructors
Constructor
Description
`AnnotationDefaultAttribute(ConstPool cp)`
Constructs an empty `AnnotationDefault_attribute`.
`AnnotationDefaultAttribute(ConstPool cp, byte[] info)`
Constructs an `AnnotationDefault_attribute`.

## Method Summary

Modifier and Type
Method
Description
`AttributeInfo`
`copy(ConstPool newCp, Map<String,String> classnames)`
Copies this attribute and returns a new copy.
`MemberValue`
`getDefaultValue()`
Obtains the default value represented by this attribute.
`void`
`setDefaultValue(MemberValue value)`
Changes the default value represented by this attribute.
`String`
`toString()`
Returns a string representation of this object.

### Methods inherited from class javassist.bytecode.AttributeInfo

`get, getConstPool, getName, length, set`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### tag

public static final String tag
The name of the `AnnotationDefault` attribute.

See Also:
  - Constant Field Values

## Constructor Details

### AnnotationDefaultAttribute

public AnnotationDefaultAttribute(ConstPool cp, byte[] info)
Constructs an `AnnotationDefault_attribute`.

Parameters:
  `cp` - constant pool
  `info` - the contents of this attribute. It does not include `attribute_name_index` or `attribute_length`.

### AnnotationDefaultAttribute

public AnnotationDefaultAttribute(ConstPool cp)
Constructs an empty `AnnotationDefault_attribute`. The default value can be set by `setDefaultValue()`.

Parameters:
  `cp` - constant pool
See Also:
  - `setDefaultValue(javassist.bytecode.annotation.MemberValue)`

## Method Details

### copy

public AttributeInfo copy(ConstPool newCp, Map<String,String> classnames)
Copies this attribute and returns a new copy.

Overrides:
  `copy` in class `AttributeInfo`
Parameters:
  `newCp` - the constant pool table used by the new copy.
  `classnames` - pairs of replaced and substituted class names.

### getDefaultValue

public MemberValue getDefaultValue()
Obtains the default value represented by this attribute.

### setDefaultValue

public void setDefaultValue(MemberValue value)
Changes the default value represented by this attribute.

Parameters:
  `value` - the new value.
See Also:
  - `Annotation.createMemberValue(ConstPool, CtClass)`

### toString

public String toString()
Returns a string representation of this object.

Overrides:
  `toString` in class `Object`