package com.alibaba.fastjson.parser.deserializer;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Map;
import com.alibaba.fastjson.parser.DefaultJSONParser;
import com.alibaba.fastjson.parser.JSONLexer;
import com.alibaba.fastjson.parser.JSONToken;
import com.alibaba.fastjson.parser.ParserConfig;
import com.alibaba.fastjson.util.FieldInfo;
public class ArrayListStringFieldDeserializer extends FieldDeserializer {
public ArrayListStringFieldDeserializer(ParserConfig mapping, Class<?> clazz, FieldInfo fieldInfo) {
super(clazz, fieldInfo);
}
public int getFastMatchToken() {
return JSONToken.LBRACKET;
}
@Override
public void parseField(DefaultJSONParser parser, Object object, Type objectType, Map<String, Object> fieldValues) {
ArrayList<Object> list;
final JSONLexer lexer = parser.getLexer();
if (lexer.token() == JSONToken.NULL) {
lexer.nextToken(JSONToken.COMMA);
list = null;
} else {
list = new ArrayList<Object>();
ArrayListStringDeserializer.parseArray(parser, list);
}
if (object == null) {
fieldValues.put(fieldInfo.getName(), list);
} else {
setValue(object, list);
}
}
}