package com.github.ltsopensource.core.json.jackson; import com.github.ltsopensource.core.json.JSON; import com.github.ltsopensource.core.json.JSONArray; import com.github.ltsopensource.core.json.JSONObject; import java.math.BigDecimal; import java.math.BigInteger; import java.util.*; import static com.github.ltsopensource.core.json.TypeUtils.*; /** * @author Robert HG (254963746@qq.com) on 11/20/15. */ public class JacksonJSONArray implements JSONArray { private List<Object> list; public JacksonJSONArray() { this.list = new ArrayList<Object>(16); } public JacksonJSONArray(List<Object> list) { this.list = list; } public JacksonJSONArray(int initialCapacity) { this.list = new ArrayList<Object>(initialCapacity); } @Override public int size() { return list.size(); } @Override public boolean isEmpty() { return list.isEmpty(); } @Override public boolean contains(Object o) { return list.contains(o); } @Override public Iterator<Object> iterator() { return list.iterator(); } @Override public Object[] toArray() { return list.toArray(); } @Override public <T> T[] toArray(T[] a) { return list.toArray(a); } @Override public boolean add(Object e) { return list.add(e); } @Override public boolean remove(Object o) { return list.remove(o); } @Override public boolean containsAll(Collection<?> c) { return list.containsAll(c); } @Override public boolean addAll(Collection<? extends Object> c) { return list.addAll(c); } @Override public boolean addAll(int index, Collection<? extends Object> c) { return list.addAll(index, c); } @Override public boolean removeAll(Collection<?> c) { return list.removeAll(c); } @Override public boolean retainAll(Collection<?> c) { return list.retainAll(c); } @Override public void clear() { list.clear(); } @Override public Object set(int index, Object element) { return list.set(index, element); } @Override public void add(int index, Object element) { list.add(index, element); } @Override public Object remove(int index) { return list.remove(index); } @Override public int indexOf(Object o) { return list.indexOf(o); } @Override public int lastIndexOf(Object o) { return list.lastIndexOf(o); } @Override public ListIterator<Object> listIterator() { return list.listIterator(); } @Override public ListIterator<Object> listIterator(int index) { return list.listIterator(); } @Override public List<Object> subList(int fromIndex, int toIndex) { return list.subList(fromIndex, toIndex); } @Override public Object get(int index) { return list.get(index); } @Override public JSONObject getJSONObject(int index) { Object value = list.get(index); if (value instanceof JSONObject) { return (JSONObject) value; } return JSON.toJSONObject(value); } @Override public JSONArray getJSONArray(int index) { Object value = list.get(index); if (value instanceof JSONArray) { return (JSONArray) value; } return JSON.toJSONArray(value); } @Override public <T> T getObject(int index, Class<T> clazz) { Object value = list.get(index); return castToJavaBean(value, clazz); } public Boolean getBoolean(int index) { Object value = get(index); if (value == null) { return null; } return castToBoolean(value); } public boolean getBooleanValue(int index) { Object value = get(index); if (value == null) { return false; } return castToBoolean(value); } public Byte getByte(int index) { Object value = get(index); return castToByte(value); } public byte getByteValue(int index) { Object value = get(index); if (value == null) { return 0; } return castToByte(value); } public Short getShort(int index) { Object value = get(index); return castToShort(value); } public short getShortValue(int index) { Object value = get(index); if (value == null) { return 0; } return castToShort(value); } public Integer getInteger(int index) { Object value = get(index); return castToInt(value); } public int getIntValue(int index) { Object value = get(index); if (value == null) { return 0; } return castToInt(value); } public Long getLong(int index) { Object value = get(index); return castToLong(value); } public long getLongValue(int index) { Object value = get(index); if (value == null) { return 0L; } return castToLong(value); } public Float getFloat(int index) { Object value = get(index); return castToFloat(value); } public float getFloatValue(int index) { Object value = get(index); if (value == null) { return 0F; } return castToFloat(value); } public Double getDouble(int index) { Object value = get(index); return castToDouble(value); } public double getDoubleValue(int index) { Object value = get(index); if (value == null) { return 0D; } return castToDouble(value); } public BigDecimal getBigDecimal(int index) { Object value = get(index); return castToBigDecimal(value); } public BigInteger getBigInteger(int index) { Object value = get(index); return castToBigInteger(value); } public String getString(int index) { Object value = get(index); return castToString(value); } public java.util.Date getDate(int index) { Object value = get(index); return castToDate(value); } public java.sql.Date getSqlDate(int index) { Object value = get(index); return castToSqlDate(value); } public java.sql.Timestamp getTimestamp(int index) { Object value = get(index); return castToTimestamp(value); } }