/src/main/java/com/alibaba/fastjson/parser/deserializer/AtomicLongArrayDeserializer.java

https://bitbucket.org/xiejuntao/xdesktop · Java · 35 lines · 26 code · 9 blank · 0 comment · 3 complexity · 9270b840b8a05c4f53160fb0f38b974b MD5 · raw file

  1. package com.alibaba.fastjson.parser.deserializer;
  2. import java.lang.reflect.Type;
  3. import java.util.concurrent.atomic.AtomicLongArray;
  4. import com.alibaba.fastjson.JSONArray;
  5. import com.alibaba.fastjson.parser.DefaultJSONParser;
  6. import com.alibaba.fastjson.parser.JSONToken;
  7. public class AtomicLongArrayDeserializer implements ObjectDeserializer {
  8. public final static AtomicLongArrayDeserializer instance = new AtomicLongArrayDeserializer();
  9. @SuppressWarnings("unchecked")
  10. public <T> T deserialze(DefaultJSONParser parser, Type clazz, Object fieldName) {
  11. if (parser.getLexer().token() == JSONToken.NULL) {
  12. parser.getLexer().nextToken(JSONToken.COMMA);
  13. return null;
  14. }
  15. JSONArray array = new JSONArray();
  16. parser.parseArray(array);
  17. AtomicLongArray atomicArray = new AtomicLongArray(array.size());
  18. for (int i = 0; i < array.size(); ++i) {
  19. atomicArray.set(i, array.getLong(i));
  20. }
  21. return (T) atomicArray;
  22. }
  23. public int getFastMatchToken() {
  24. return JSONToken.LBRACKET;
  25. }
  26. }