Skip to content

Instantly share code, notes, and snippets.

@jegesh
Last active October 19, 2017 07:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jegesh/cdade7f8c9ffa525bac4f6bd3eae6b42 to your computer and use it in GitHub Desktop.
Save jegesh/cdade7f8c9ffa525bac4f6bd3eae6b42 to your computer and use it in GitHub Desktop.
ParseObject caching example
import ca.weblite.codename1.json.JSONObject;
import com.codename1.io.Log;
import com.parse4cn1.ParseObject;
import java.util.Collection;
import java.util.HashMap;
import net.gesher.cn1.caching.CacheSerializer;
/**
*
* @author Yaakov Gesher
*/
public class ParseObjectCacheSerializer implements CacheSerializer<ParseObject>{
private String parseClassName;
public ParseObjectCacheSerializer(String parseClassName){
this.parseClassName = parseClassName;
}
private HashMap<String, Object> getParseData(ParseObject parse) {
HashMap<String, Object> dataMap = new HashMap<>();
dataMap.put("objectId", parse.getObjectId());
dataMap.put("createdAt", parse.getCreatedAt());
dataMap.put("updatedAt", parse.getUpdatedAt());
// Persist actual data
Collection<String> keys = parse.keySet();
for (String key : keys) {
Object value = parse.get(key);
if (value instanceof ParseObject) {
value = new JSONObject(getParseData((ParseObject) value));
}
dataMap.put(key, value);
}
return dataMap;
}
@Override
public JSONObject serialize(ParseObject object) {
try{
return new JSONObject(getParseData(object));
} catch (Exception ex) {
ex.printStackTrace();
Log.p(this.getClass().getSimpleName() + ": Failed to serialize " +
object.getClassName() + " with id: " + object.getObjectId(), Log.ERROR);
}
return null;
}
@Override
public Object getObjectId(ParseObject object) {
return object.getObjectId();
}
@Override
public ParseObject deserialize(JSONObject rawData) {
ParseObject parseObject = ParseObject.create(parseClassName);
parseObject.setData(rawData);
return parseObject;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment