com.alibaba.fastjson2.reader.ObjectReaderImplInt32ValueArray Maven / Gradle / Ivy
package com.alibaba.fastjson2.reader;
import com.alibaba.fastjson2.JSONException;
import com.alibaba.fastjson2.JSONReader;
import java.util.Arrays;
final class ObjectReaderImplInt32ValueArray extends ObjectReaderBaseModule.PrimitiveImpl {
static final ObjectReaderImplInt32ValueArray INSTANCE = new ObjectReaderImplInt32ValueArray();
@Override
public Object readObject(JSONReader jsonReader, long features) {
if (jsonReader.isJSONB()) {
return readJSONBObject(jsonReader, features);
}
if (jsonReader.readIfNull()) {
return null;
}
if (jsonReader.nextIfMatch('[')) {
int[] values = new int[16];
int size = 0;
for (; ; ) {
if (jsonReader.nextIfMatch(']')) {
break;
}
int minCapacity = size + 1;
if (minCapacity - values.length > 0) {
int oldCapacity = values.length;
int newCapacity = oldCapacity + (oldCapacity >> 1);
if (newCapacity - minCapacity < 0) {
newCapacity = minCapacity;
}
values = Arrays.copyOf(values, newCapacity);
}
values[size++] = jsonReader.readInt32Value();
}
jsonReader.nextIfMatch(',');
return Arrays.copyOf(values, size);
}
throw new JSONException("TODO");
}
@Override
public Object readJSONBObject(JSONReader jsonReader, long features) {
int entryCnt = jsonReader.startArray();
if (entryCnt == -1) {
return null;
}
int[] array = new int[entryCnt];
for (int i = 0; i < entryCnt; i++) {
array[i] = jsonReader.readInt32Value();
}
return array;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy