shade.com.alibaba.fastjson2.reader.FieldReaderAtomicReference Maven / Gradle / Ivy
package com.alibaba.fastjson2.reader;
import com.alibaba.fastjson2.JSONReader;
import com.alibaba.fastjson2.schema.JSONSchema;
import java.lang.reflect.*;
public abstract class FieldReaderAtomicReference
extends FieldReader {
final Type referenceType;
public FieldReaderAtomicReference(
String fieldName,
Type fieldType,
Class fieldClass,
int ordinal,
long features,
String format,
JSONSchema schema,
Method method,
Field field
) {
super(fieldName, fieldType, fieldClass, ordinal, features, format, null, null, schema, method, field);
Type referenceType = null;
if (fieldType instanceof ParameterizedType) {
ParameterizedType paramType = (ParameterizedType) fieldType;
Type[] arguments = paramType.getActualTypeArguments();
if (arguments.length == 1) {
referenceType = arguments[0];
}
}
this.referenceType = referenceType;
}
@Override
public void readFieldValue(JSONReader jsonReader, T object) {
if (jsonReader.nextIfNull()) {
return;
}
Object refValue = jsonReader.read(referenceType);
accept(object, refValue);
}
@Override
public Object readFieldValue(JSONReader jsonReader) {
return jsonReader.read(referenceType);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy