/** * Creates a ParseRelation from a Parcel with the given decoder. */ /* package */ ParseRelation(Parcel source, ParseParcelDecoder decoder) { if (source.readByte() == 1) this.key = source.readString(); if (source.readByte() == 1) this.targetClass = source.readString(); if (source.readByte() == 1) this.parentClassName = source.readString(); if (source.readByte() == 1) this.parentObjectId = source.readString(); if (source.readByte() == 1) this.parent = new WeakReference<>((ParseObject) decoder.decode(source)); int size = source.readInt(); for (int i = 0; i < size; i++) { knownObjects.add((ParseObject) decoder.decode(source)); } }
@Override public ParseFieldOperation decode(Parcel source, ParseParcelDecoder decoder) { return new ParseIncrementOperation((Number) decoder.decode(source)); } });
@Override public ParseFieldOperation decode(Parcel source, ParseParcelDecoder decoder) { int size = source.readInt(); List<Object> list = new ArrayList<>(size); for (int i = 0; i < size; i++) { list.add(i, decoder.decode(source)); } return new ParseAddUniqueOperation(list); } });
@Override public ParseFieldOperation decode(Parcel source, ParseParcelDecoder decoder) { return new ParseSetOperation(decoder.decode(source)); } });
@Override public ParseFieldOperation decode(Parcel source, ParseParcelDecoder decoder) { int size = source.readInt(); List<Object> list = new ArrayList<>(size); for (int i = 0; i < size; i++) { list.add(i, decoder.decode(source)); } return new ParseAddOperation(list); } });
@Override public ParseFieldOperation decode(Parcel source, ParseParcelDecoder decoder) { int size = source.readInt(); List<Object> list = new ArrayList<>(size); for (int i = 0; i < size; i++) { list.add(i, decoder.decode(source)); } return new ParseRemoveOperation(list); } });
@Override public ParseFieldOperation decode(Parcel source, ParseParcelDecoder decoder) { int size = source.readInt(); Set<ParseObject> set = new HashSet<>(size); for (int i = 0; i < size; i++) { set.add((ParseObject) decoder.decode(source)); } return new ParseRelationOperation<>(set, null); } });
@Override public ParseFieldOperation decode(Parcel source, ParseParcelDecoder decoder) { int size = source.readInt(); Set<ParseObject> set = new HashSet<>(size); for (int i = 0; i < size; i++) { set.add((ParseObject) decoder.decode(source)); } return new ParseRelationOperation<>(null, set); } });
State(Parcel parcel, String clazz, ParseParcelDecoder decoder) { className = clazz; // Already read objectId = parcel.readByte() == 1 ? parcel.readString() : null; createdAt = parcel.readLong(); long updated = parcel.readLong(); updatedAt = updated > 0 ? updated : createdAt; int size = parcel.readInt(); HashMap<String, Object> map = new HashMap<>(); for (int i = 0; i < size; i++) { String key = parcel.readString(); Object obj = decoder.decode(parcel); map.put(key, obj); } serverData = Collections.unmodifiableMap(map); isComplete = parcel.readByte() == 1; List<String> available = new ArrayList<>(); parcel.readStringList(available); availableKeys = new HashSet<>(available); }
static ParseOperationSet fromParcel(Parcel source, ParseParcelDecoder decoder) { ParseOperationSet set = new ParseOperationSet(source.readString()); set.setIsSaveEventually(source.readByte() == 1); int size = source.readInt(); for (int i = 0; i < size; i++) { String key = source.readString(); ParseFieldOperation op = (ParseFieldOperation) decoder.decode(source); set.put(key, op); } return set; }
/* package */ ParseACL(Parcel source, ParseParcelDecoder decoder) { shared = source.readByte() == 1; int size = source.readInt(); for (int i = 0; i < size; i++) { String key = source.readString(); Permissions permissions = Permissions.createPermissionsFromParcel(source); permissionsById.put(key, permissions); } if (source.readByte() == 1) { unresolvedUser = (ParseUser) decoder.decode(source); unresolvedUser.registerSaveListener(new UserResolutionListener(this)); } }