Iterator<ModelField> pksIter = entity.getPksIterator();
while (pksIter.hasNext()) {
String errMsg = "";
ModelField field = pksIter.next();
ModelFieldType type = null;
try {
type = delegator.getEntityFieldType(entity, field.getType());
} catch (GenericEntityException e) {
Debug.logWarning(e, module);
Map<String, String> messageMap = UtilMisc.toMap("fieldType", field.getType());
errMsg += UtilProperties.getMessage(GenericWebEvent.err_resource, "genericWebEvent.fatal_error_param", messageMap, locale) + ".";
}
String fval = request.getParameter(field.getName());
if (fval != null && fval.length() > 0) {
try {
findByEntity.setString(field.getName(), fval);
} catch (Exception e) {
Map<String, String> messageMap = UtilMisc.toMap("fval", fval);
errMsg = errMsg + "<li>" + field.getColName() + UtilProperties.getMessage(GenericWebEvent.err_resource, "genericWebEvent.conversion_failed", messageMap, locale) + type.getJavaType() + ".";
Debug.logWarning("[updateGeneric] " + field.getColName() + " conversion failed: \"" + fval + "\" is not a valid " + type.getJavaType() + "; entityName: " + entityName, module);
}
}
}
if (errMsgPk.length() > 0) {
request.setAttribute("_ERROR_MESSAGE_", errMsgPk);
return "error";
}
// if this is a delete, do that before getting all of the non-pk parameters and validating them
if (updateMode.equals("DELETE")) {
// Remove associated/dependent entries from other tables here
// Delete actual main entity last, just in case database is set up to do a cascading delete, caches won't get cleared
try {
delegator.removeByPrimaryKey(findByEntity.getPrimaryKey());
} catch (GenericEntityException e) {
String errMsg = UtilProperties.getMessage(GenericWebEvent.err_resource, "genericWebEvent.delete_failed", locale) + ": " + e.toString();
Debug.logWarning(e, errMsg, module);
request.setAttribute("_ERROR_MESSAGE_", errMsg);
return "error";
}
return "success";
}
// get the non-primary key parameters
String errMsgNonPk = "";
Iterator<ModelField> nopksIter = entity.getNopksIterator();
while (nopksIter.hasNext()) {
ModelField field = nopksIter.next();
ModelFieldType type = null;
try {
type = delegator.getEntityFieldType(entity, field.getType());
} catch (GenericEntityException e) {
Debug.logWarning(e, module);
Map<String, String> messageMap = UtilMisc.toMap("fieldType", field.getType());
errMsgNonPk += UtilProperties.getMessage(GenericWebEvent.err_resource, "genericWebEvent.fatal_error_param", messageMap, locale) + ".";
}
String fval = request.getParameter(field.getName());
if (fval != null && fval.length() > 0) {
try {
findByEntity.setString(field.getName(), fval);
} catch (Exception e) {
Map<String, String> messageMap = UtilMisc.toMap("fval", fval);
errMsgNonPk += field.getColName() + UtilProperties.getMessage(GenericWebEvent.err_resource,
"genericWebEvent.conversion_failed", messageMap, locale) + type.getJavaType() + ".";
Debug.logWarning("[updateGeneric] " + field.getColName() + " conversion failed: \"" + fval + "\" is not a valid " + type.getJavaType() + "; entityName: " + entityName, module);
}
} else {
findByEntity.set(field.getName(), null);
}
}