package com.vinsol.confconnect.gson; import java.lang.reflect.Field; import com.google.gson.FieldNamingStrategy; import com.vinsol.expensetracker.utils.Strings; /* * A mechanism for providing custom field naming in Gson. * This allows the client code to translate field names * into a particular convention that is not supported * as a normal Java field declaration rules. */ public class ExpenseTrackerFieldNamingPolicy implements FieldNamingStrategy{ @Override public String translateName(Field f) { return getConvention(f.getName()); } private String getConvention(String name) { if(Strings.equal(name, "deviceId")) { return "device_id";} if(Strings.equal(name, "myHash")) { return "my_hash";} if(Strings.equal(name, "timeInMillis")) { return "time_milis_utc";} if(Strings.equal(name, "idFromServer")) { return "id";} if(Strings.equal(name, "type")) { return "expense_type";} if(Strings.equal(name, "updatedAt")) { return "updated_at";} if(Strings.equal(name, "fileToDownload")) { return "file_to_download";} if(Strings.equal(name, "deleted")) { return "delete_bit";} if(Strings.equal(name, "syncBit")) { return "sync_bit";} if(Strings.equal(name, "fileUploaded")) { return "file_uploaded";} if(Strings.equal(name, "fileUpdatedAt")) { return "file_updated_at";} if(Strings.equal(name, "token")) { return "encrypted_token";} return name; } }