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