{
UpdateAppDataRequest parameters = (UpdateAppDataRequest) inActionContext.getParams();
long applicationId = parameters.getApplicationId();
String personId = parameters.getOpenSocialId();
AppData outputAppData = null;
AppData currentAppData = mapper.findOrCreateByPersonAndGadgetDefinitionIds(applicationId, personId);
if (currentAppData != null)
{
HashMap<String, String> inputAppDataVals = parameters.getAppDataValues();
if (inputAppDataVals != null)
{
Map<String, String> appDataVals = new HashMap<String, String>(currentAppData.getValues());
for (Entry<String, String> currentAppDataValue : inputAppDataVals.entrySet())
{
appDataVals.put(currentAppDataValue.getKey(), currentAppDataValue.getValue());
}
currentAppData.setValues(appDataVals);
mapper.flush();
}
// delete cache
log.info("Deleting the AppDataDTO cache for gadDef " + applicationId + ", open social id: " + personId);