1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.bcel.classfile;
20
21 import java.io.DataOutputStream;
22 import java.io.IOException;
23
24
25
26
27 public class ArrayElementValue extends ElementValue {
28
29 private final ElementValue[] elementValues;
30
31 public ArrayElementValue(final int type, final ElementValue[] elementValues, final ConstantPool cpool) {
32 super(type, cpool);
33 if (type != ARRAY) {
34 throw new ClassFormatException("Only element values of type array can be built with this ctor - type specified: " + type);
35 }
36 this.elementValues = elementValues != null ? elementValues : EMPTY_ARRAY;
37 }
38
39 @Override
40 public void dump(final DataOutputStream dos) throws IOException {
41 dos.writeByte(super.getType());
42 dos.writeShort(elementValues.length);
43 for (final ElementValue evalue : elementValues) {
44 evalue.dump(dos);
45 }
46 }
47
48 public ElementValue[] getElementValuesArray() {
49 return elementValues;
50 }
51
52 public int getElementValuesArraySize() {
53 return elementValues.length;
54 }
55
56 @Override
57 public String stringifyValue() {
58 final StringBuilder sb = new StringBuilder();
59 sb.append("[");
60 for (int i = 0; i < elementValues.length; i++) {
61 sb.append(elementValues[i].stringifyValue());
62 if (i + 1 < elementValues.length) {
63 sb.append(",");
64 }
65 }
66 sb.append("]");
67 return sb.toString();
68 }
69
70 @Override
71 public String toString() {
72 final StringBuilder sb = new StringBuilder();
73 sb.append("{");
74 for (int i = 0; i < elementValues.length; i++) {
75 sb.append(elementValues[i]);
76 if (i + 1 < elementValues.length) {
77 sb.append(",");
78 }
79 }
80 sb.append("}");
81 return sb.toString();
82 }
83 }