/*
* Copyright (c) 2015-present, Parse, LLC.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
package com.parse;
import java.util.Map;
/**
* A subclass of <code>ParseDecoder</code> which can keep <code>ParseObject</code> that
* has been fetched instead of creating a new instance.
*/
/** package */ class KnownParseObjectDecoder extends ParseDecoder {
private Map<String, ParseObject> fetchedObjects;
public KnownParseObjectDecoder(Map<String, ParseObject> fetchedObjects) {
super();
this.fetchedObjects = fetchedObjects;
}
/**
* If the object has been fetched, the fetched object will be returned. Otherwise a
* new created object will be returned.
*/
@Override
protected ParseObject decodePointer(String className, String objectId) {
if (fetchedObjects != null && fetchedObjects.containsKey(objectId)) {
return fetchedObjects.get(objectId);
}
return super.decodePointer(className, objectId);
}
}