1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.bcel.generic;
18
19 import java.io.DataOutputStream;
20 import java.io.IOException;
21
22 import org.apache.bcel.classfile.AnnotationElementValue;
23 import org.apache.bcel.classfile.ElementValue;
24
25
26
27
28 public class AnnotationElementValueGen extends ElementValueGen {
29
30 private final AnnotationEntryGen a;
31
32 public AnnotationElementValueGen(final AnnotationElementValue value, final ConstantPoolGen cpool, final boolean copyPoolEntries) {
33 super(ANNOTATION, cpool);
34 a = new AnnotationEntryGen(value.getAnnotationEntry(), cpool, copyPoolEntries);
35 }
36
37 public AnnotationElementValueGen(final AnnotationEntryGen a, final ConstantPoolGen cpool) {
38 super(ANNOTATION, cpool);
39 this.a = a;
40 }
41
42 public AnnotationElementValueGen(final int type, final AnnotationEntryGen annotation, final ConstantPoolGen cpool) {
43 super(type, cpool);
44 if (type != ANNOTATION) {
45 throw new IllegalArgumentException("Only element values of type annotation can be built with this ctor - type specified: " + type);
46 }
47 this.a = annotation;
48 }
49
50 @Override
51 public void dump(final DataOutputStream dos) throws IOException {
52 dos.writeByte(super.getElementValueType());
53 a.dump(dos);
54 }
55
56 public AnnotationEntryGen getAnnotation() {
57 return a;
58 }
59
60
61
62
63 @Override
64 public ElementValue getElementValue() {
65 return new AnnotationElementValue(super.getElementValueType(), a.getAnnotation(), getConstantPool().getConstantPool());
66 }
67
68 @Override
69 public String stringifyValue() {
70 throw new UnsupportedOperationException("Not implemented yet");
71 }
72 }