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