shade.com.alibaba.fastjson2.reader.FieldReaderAnySetter Maven / Gradle / Ivy
package com.alibaba.fastjson2.reader;
import com.alibaba.fastjson2.JSONException;
import com.alibaba.fastjson2.JSONReader;
import com.alibaba.fastjson2.schema.JSONSchema;
import java.lang.reflect.Method;
import java.lang.reflect.Type;
class FieldReaderAnySetter
extends FieldReaderObject {
FieldReaderAnySetter(
Type fieldType,
Class fieldClass,
int ordinal,
long features,
String format,
JSONSchema schema,
Method method) {
super("$$any$$", fieldType, fieldClass, ordinal, features, format, null, null, schema, method, null, null);
}
@Override
public ObjectReader getItemObjectReader(JSONReader jsonReader) {
if (itemReader != null) {
return itemReader;
}
return itemReader = jsonReader.getObjectReader(fieldType);
}
@Override
public void accept(T object, Object value) {
throw new UnsupportedOperationException();
}
@Override
public void processExtra(JSONReader jsonReader, Object object) {
String name = jsonReader.getFieldName();
ObjectReader itemObjectReader = getItemObjectReader(jsonReader);
Object value = itemObjectReader.readObject(jsonReader, fieldType, fieldName, 0);
try {
method.invoke(object, name, value);
} catch (Exception e) {
throw new JSONException(jsonReader.info("any set error"), e);
}
}
@Override
public void acceptExtra(Object object, String name, Object value) {
try {
method.invoke(object, name, value);
} catch (Exception e) {
throw new JSONException("any set error");
}
}
@Override
public boolean isReadOnly() {
return true;
}
@Override
public void readFieldValue(JSONReader jsonReader, T object) {
throw new UnsupportedOperationException();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy