Browse Source

Merge pull request #100 from oreissig/remove-annotation

removal of annotations
tags/rel_3_21_0_ga
Shigeru Chiba 7 years ago
parent
commit
460d41808a
1 changed files with 23 additions and 0 deletions
  1. 23
    0
      src/main/javassist/bytecode/AnnotationsAttribute.java

+ 23
- 0
src/main/javassist/bytecode/AnnotationsAttribute.java View File

@@ -213,6 +213,29 @@ public class AnnotationsAttribute extends AttributeInfo {
setAnnotations(newlist);
}

/**
* Removes an annotation by type.
*
* @param type of annotation to remove
* @return whether an annotation with the given type has been removed
*/
public boolean removeAnnotation(String type) {
Annotation[] annotations = getAnnotations();
for (int i = 0; i < annotations.length; i++) {
if (annotations[i].getTypeName().equals(type)) {
Annotation[] newlist = new Annotation[annotations.length - 1];
System.arraycopy(annotations, 0, newlist, 0, i);
if (i < annotations.length - 1) {
System.arraycopy(annotations, i + 1, newlist, i,
annotations.length - i - 1);
}
setAnnotations(newlist);
return true;
}
}
return false;
}

/**
* Parses the annotations and returns a data structure representing
* that parsed annotations. Note that changes of the node values of the

Loading…
Cancel
Save