1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.compress.harmony.unpack200.bytecode;
18
19 import java.io.DataOutputStream;
20 import java.io.IOException;
21 import java.util.ArrayList;
22 import java.util.List;
23
24
25
26
27 public class AnnotationDefaultAttribute extends AnnotationsAttribute {
28
29 private static CPUTF8 attributeName;
30
31 public static void setAttributeName(final CPUTF8 cpUTF8Value) {
32 attributeName = cpUTF8Value;
33 }
34
35 private final ElementValue elementValue;
36
37
38
39
40
41
42 public AnnotationDefaultAttribute(final ElementValue elementValue) {
43 super(attributeName);
44 this.elementValue = elementValue;
45 }
46
47 @Override
48 public boolean equals(final Object obj) {
49 return this == obj;
50 }
51
52 @Override
53 protected int getLength() {
54 return elementValue.getLength();
55 }
56
57 @Override
58 protected ClassFileEntry[] getNestedClassFileEntries() {
59 final List<Object> nested = new ArrayList<>();
60 nested.add(attributeName);
61 nested.addAll(elementValue.getClassFileEntries());
62 final ClassFileEntry[] nestedEntries = new ClassFileEntry[nested.size()];
63 for (int i = 0; i < nestedEntries.length; i++) {
64 nestedEntries[i] = (ClassFileEntry) nested.get(i);
65 }
66 return nestedEntries;
67 }
68
69 @Override
70 protected void resolve(final ClassConstantPool pool) {
71 super.resolve(pool);
72 elementValue.resolve(pool);
73 }
74
75 @Override
76 public String toString() {
77 return "AnnotationDefault: " + elementValue;
78 }
79
80 @Override
81 protected void writeBody(final DataOutputStream dos) throws IOException {
82 elementValue.writeBody(dos);
83 }
84
85 }