159 private NumberArrayData convertToDouble() {
160 return new NumberArrayData(toDoubleArray(), (int)length());
161 }
162
163 private ObjectArrayData convertToObject() {
164 return new ObjectArrayData(toObjectArray(false), (int)length());
165 }
166
167 @Override
168 public ArrayData convert(final Class<?> type) {
169 if (type == Integer.class || type == Byte.class || type == Short.class) {
170 return this;
171 } else if (type == Double.class || type == Float.class) {
172 return convertToDouble();
173 } else {
174 return convertToObject();
175 }
176 }
177
178 @Override
179 public void shiftLeft(final int by) {
180 System.arraycopy(array, by, array, 0, array.length - by);
181 }
182
183 @Override
184 public ArrayData shiftRight(final int by) {
185 final ArrayData newData = ensure(by + length() - 1);
186 if (newData != this) {
187 newData.shiftRight(by);
188 return newData;
189 }
190 System.arraycopy(array, 0, array, by, array.length - by);
191
192 return this;
193 }
194
195 @Override
196 public ArrayData ensure(final long safeIndex) {
197 if (safeIndex >= SparseArrayData.MAX_DENSE_LENGTH) {
198 return new SparseArrayData(this, safeIndex + 1);
199 }
200 final int alen = array.length;
201 if (safeIndex >= alen) {
|
159 private NumberArrayData convertToDouble() {
160 return new NumberArrayData(toDoubleArray(), (int)length());
161 }
162
163 private ObjectArrayData convertToObject() {
164 return new ObjectArrayData(toObjectArray(false), (int)length());
165 }
166
167 @Override
168 public ArrayData convert(final Class<?> type) {
169 if (type == Integer.class || type == Byte.class || type == Short.class) {
170 return this;
171 } else if (type == Double.class || type == Float.class) {
172 return convertToDouble();
173 } else {
174 return convertToObject();
175 }
176 }
177
178 @Override
179 public ArrayData shiftLeft(final int by) {
180 if (by >= length()) {
181 shrink(0);
182 } else {
183 System.arraycopy(array, by, array, 0, array.length - by);
184 }
185 setLength(Math.max(0, length() - by));
186
187 return this;
188 }
189
190 @Override
191 public ArrayData shiftRight(final int by) {
192 final ArrayData newData = ensure(by + length() - 1);
193 if (newData != this) {
194 newData.shiftRight(by);
195 return newData;
196 }
197 System.arraycopy(array, 0, array, by, array.length - by);
198
199 return this;
200 }
201
202 @Override
203 public ArrayData ensure(final long safeIndex) {
204 if (safeIndex >= SparseArrayData.MAX_DENSE_LENGTH) {
205 return new SparseArrayData(this, safeIndex + 1);
206 }
207 final int alen = array.length;
208 if (safeIndex >= alen) {
|