private CustomField.Nature getNature(final RemoveCustomFieldPossibleValueForm form) { CustomField.Nature nature; try { nature = CustomField.Nature.valueOf(form.getNature()); } catch (final Exception e) { throw new ValidationException(); } return nature; }
@Override protected ActionForward executeAction(final ActionContext context) throws Exception { final RemoveCustomFieldPossibleValueForm form = context.getForm(); final long id = form.getPossibleValueId(); if (id <= 0) { throw new ValidationException(); } final Nature nature = getNature(form); final Map<String, Object> params = new HashMap<String, Object>(); String key; try { final BaseCustomFieldService<CustomField> service = resolveService(nature); final CustomFieldPossibleValue possibleValue = service.loadPossibleValue(id); final CustomField customField = possibleValue.getField(); switch (customField.getNature()) { case PAYMENT: final PaymentCustomField paymentField = (PaymentCustomField) customField; params.put("transferTypeId", paymentField.getTransferType().getId()); break; case MEMBER_RECORD: final MemberRecordCustomField memberRecordField = (MemberRecordCustomField) customField; params.put("memberRecordTypeId", memberRecordField.getMemberRecordType().getId()); default: service.removePossibleValue(id); break; } key = "customField.possibleValue.removed"; } catch (final DaoException e) { key = "customField.possibleValue.error.removing"; } params.put("fieldId", form.getFieldId()); params.put("nature", nature); context.sendMessage(key); return ActionHelper.redirectWithParams( context.getRequest(), context.getSuccessForward(), params); }