@Override public void addStaticClass(String alias, Class<?> clazz) { staticMap.put(alias.hashCode(), clazz); } @Override
@Override public void addVariable(String alias, Object obj){ varMap.put(alias.hashCode(), obj); } @Override
@Override public void addVariable(String alias, Object obj){ varMap.put(alias.hashCode(), obj); } @Override
@Override public void addStaticClass(String alias, Class<?> clazz) { staticMap.put(alias.hashCode(), clazz); } @Override
@Override public V put(int key, V value, int[] resultStateArr) { final V old = mMap.get(key); final int resultState; if(value == null){ if(old == null){ resultState = STATE_NO_CHANGE; }else{ mMap.put(key, null); resultState = STATE_CHANGED; } }else{ if(old == null){ //new not null, old is null. mMap.put(key, value); resultState = STATE_NEW; }else if (value.equals( old )){ //new not null, old is not null. but equals. resultState = STATE_NO_CHANGE; }else{ mMap.put(key, value); resultState= STATE_CHANGED; } } if(resultStateArr != null){ resultStateArr[0] = resultState; } return old; }
@Override public V put(int key, V value, int[] resultStateArr) { final V old = mMap.get(key); final int resultState; if(value == null){ if(old == null){ resultState = STATE_NO_CHANGE; }else{ mMap.put(key, null); resultState = STATE_CHANGED; } }else{ if(old == null){ //new not null, old is null. mMap.put(key, value); resultState = STATE_NEW; }else if (value.equals( old )){ //new not null, old is not null. but equals. resultState = STATE_NO_CHANGE; }else{ mMap.put(key, value); resultState= STATE_CHANGED; } } if(resultStateArr != null){ resultStateArr[0] = resultState; } return old; }
private void prepare(List<GroupProperty> gps) { for (GroupProperty gp : gps) { List<GroupProperty> list = mPropMap.get(gp.type); if (list == null) { list = new ArrayList<>(3); mPropMap.put(gp.type, list); } list.add(gp); } }
private void prepare(List<GroupProperty> gps) { for (GroupProperty gp : gps) { List<GroupProperty> list = mPropMap.get(gp.type); if (list == null) { list = new ArrayList<>(3); mPropMap.put(gp.type, list); } list.add(gp); } }
@Override public SparseArray<T> read(JsonReader in) throws IOException { SparseArray<T> map = new SparseArray<>(); in.beginObject(); while (in.hasNext()){ String name = in.nextName(); map.put(Integer.parseInt(name), mAdapter.read(in)); } in.endObject(); return map; }
public FamilyManager(BaseMediator<T> mediator, List<FamilyGroup> groups) { Throwables.checkEmpty(groups); Throwables.checkNull(mediator); this.mMediator = mediator; //prepare for (FamilyGroup fg : groups) { List<FamilyGroup> list = mGroups.get(fg.type); if (list == null) { list = new ArrayList<>(4); mGroups.put(fg.type, list); } list.add(fg); } }
public FamilyManager(BaseMediator<T> mediator, List<FamilyGroup> groups) { Throwables.checkEmpty(groups); Throwables.checkNull(mediator); this.mMediator = mediator; //prepare for (FamilyGroup fg : groups) { List<FamilyGroup> list = mGroups.get(fg.type); if (list == null) { list = new ArrayList<>(4); mGroups.put(fg.type, list); } list.add(fg); } }
@Override public void read(JsonReader in, GsonProperty property, Object t) throws IOException { final Class<?> simpleType = property.getType(); final SparseArray sa = new SparseArray(); in.beginObject(); if (simpleType.isPrimitive() || isBoxedClass(simpleType)) { while (in.hasNext()) { int key = Integer.parseInt(in.nextName()); sa.put(key, SupportUtils.readPrimitiveOrItsBox(in, property)); } }else{ TypeAdapter adapter = getTypeAdapter(simpleType); while (in.hasNext()) { int key = Integer.parseInt(in.nextName()); Object val = adapter.read(in); if (val != null) { sa.put(key, val); } } } setValue(property, t, sa); in.endObject(); } }
@Override public SparseArray<Car3> read(JsonReader in) throws IOException { SparseArray<Car3> map = new SparseArray<>(); in.beginObject(); while (in.hasNext()){ String name = in.nextName(); map.put(Integer.parseInt(name), mAdapter.read(in)); } in.endObject(); return map; } }
private static TypeHandler getTypeHandlerInternal(int complexType) { TypeHandler handler = sHandlers.get(complexType); if(handler == null){ switch (complexType){ case FieldFlags.COMPLEX_LIST: handler = new ListTypeHandler(); break; case FieldFlags.COMPLEX_ARRAY: handler = new ArrayTypeHandler(); break; case FieldFlags.COMPLEX_SPARSE_ARRAY: handler = new SparseArrayTypeHandler(); break; case 0: handler = new SimpleTypeHandler(); break; default: throw new UnsupportedOperationException(); } sHandlers.put(complexType, handler); } return handler; }
adapter.mBinderMap.put(position, targetBinder); if(adapter.mGDM != null){ adapter.mGDM.attach(targetBinder, false);
private static TestGsonBean newTestGsonBean() { List<Car3> list = new ArrayList<>(); SparseArray<Car3> map = new SparseArray<>(); Car3[] arr = new Car3[3]; for(int i = 0 ; i < 3 ; i++){ Car3 car = new Car3(); car.setMark("AUDI"); car.setModel(2014); //2,1 car.setType("DIESEL"); car.setMaker("AUDI GERMANY"); car.setCost(i * 100); car.getColors().add("GREY"); car.getColors().add("BLACK"); car.getColors().add("WHITE"); list.add(car); map.put(i, car); arr[i] = car; } TestGsonBean tl = new TestGsonBean(); tl.setList(list); tl.setCarMap(map); //null时,map不参与序列化输出 tl.setCarsArr(arr); tl.setCar(arr[0]); return tl; }