59 }
60
61 return value;
62 }
63
64 @Override
65 public Object asArrayOfType(final Class<?> componentType) {
66 final Object value = super.asArrayOfType(componentType);
67 final Object undefValue = convertUndefinedValue(componentType);
68 final int l = Array.getLength(value);
69 for (int i = 0; i < l; i++) {
70 if (deleted.isSet(i)) {
71 Array.set(value, i, undefValue);
72 }
73 }
74
75 return value;
76 }
77
78 @Override
79 public void shiftLeft(final int by) {
80 super.shiftLeft(by);
81 deleted.shiftLeft(by, length());
82 }
83
84 @Override
85 public ArrayData shiftRight(final int by) {
86 super.shiftRight(by);
87 deleted.shiftRight(by, length());
88 return this;
89 }
90
91 @Override
92 public ArrayData ensure(final long safeIndex) {
93 if (safeIndex >= SparseArrayData.MAX_DENSE_LENGTH && safeIndex >= length()) {
94 return new SparseArrayData(this, safeIndex + 1);
95 }
96
97 super.ensure(safeIndex);
98 deleted.resize(length());
99
100 return this;
101 }
|
59 }
60
61 return value;
62 }
63
64 @Override
65 public Object asArrayOfType(final Class<?> componentType) {
66 final Object value = super.asArrayOfType(componentType);
67 final Object undefValue = convertUndefinedValue(componentType);
68 final int l = Array.getLength(value);
69 for (int i = 0; i < l; i++) {
70 if (deleted.isSet(i)) {
71 Array.set(value, i, undefValue);
72 }
73 }
74
75 return value;
76 }
77
78 @Override
79 public ArrayData shiftLeft(final int by) {
80 super.shiftLeft(by);
81 deleted.shiftLeft(by, length());
82 return this;
83 }
84
85 @Override
86 public ArrayData shiftRight(final int by) {
87 super.shiftRight(by);
88 deleted.shiftRight(by, length());
89 return this;
90 }
91
92 @Override
93 public ArrayData ensure(final long safeIndex) {
94 if (safeIndex >= SparseArrayData.MAX_DENSE_LENGTH && safeIndex >= length()) {
95 return new SparseArrayData(this, safeIndex + 1);
96 }
97
98 super.ensure(safeIndex);
99 deleted.resize(length());
100
101 return this;
102 }
|