/** * Overrides the execute method of Action class. Adds / Updates the data in the database. * * @param mapping ActionMapping * @param form ActionForm * @param request HttpServletRequest * @param response HttpServletResponse * @return ActionForward * @throws Exception Exception */ public ActionForward executeSecureAction( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { LOGGER.info("in execute method"); BaseAddEditAction addEditAction; AbstractActionForm abstractForm = (AbstractActionForm) form; ActionForward actionfwd; try { if (!isTokenValid(request)) { actionfwd = mapping.findForward(Constants.FAILURE); ActionErrors actionErrors = new ActionErrors(); ActionError actionError = new ActionError("errors.item", "Invalid request for add/edit operation"); actionErrors.add(ActionErrors.GLOBAL_ERROR, actionError); saveErrors(request, actionErrors); } else { resetToken(request); if (abstractForm.isAddOperation()) { addEditAction = new CommonAddAction(); } else { addEditAction = new CommonEdtAction(); } actionfwd = addEditAction.executeXSS(mapping, abstractForm, request, response); } } catch (ApplicationException applicationException) { LOGGER.error("Common Add/Edit failed.." + applicationException.getCustomizedMsg()); ActionErrors actionErrors = new ActionErrors(); ActionError actionError = new ActionError("errors.item", applicationException.getCustomizedMsg()); actionErrors.add(ActionErrors.GLOBAL_ERROR, actionError); saveErrors(request, actionErrors); actionfwd = mapping.findForward(Constants.FAILURE); } return actionfwd; }
/** * Overriding the parent class's method to validate the enumerated attribute values * * @param obj : obj * @param dao : dao * @param operation : operation * @throws BizLogicException : BizLogicException * @return boolean */ @Override protected boolean validate(Object obj, DAO dao, String operation) throws BizLogicException { try { final StorageContainer container = (StorageContainer) obj; final Map similarContainerMap = container.getSimilarContainerMap(); final String containerPrefixKey = "simCont:"; final String parentContainerId = "_parentContainerId"; final List positionsToBeAllocatedList = new ArrayList(); final List usedPositionsList = new ArrayList(); for (int i = 1; i <= container.getNoOfContainers().intValue(); i++) { StorageContainerUtil.prepareContainerMap( dao, similarContainerMap, containerPrefixKey, positionsToBeAllocatedList, usedPositionsList, i, parentContainerId); } /*for (int i = 0; i < positionsToBeAllocatedList.size(); i++) { StorageContainerUtil.allocatePositionToSingleContainerOrSpecimen( positionsToBeAllocatedList.get(i), similarContainerMap, usedPositionsList, containerPrefixKey, parentContainerId); }*/ if (container.getNoOfContainers().intValue() > 1 && similarContainerMap.size() > 0) { for (int i = 1; i <= container.getNoOfContainers().intValue(); i++) { final int checkedButtonStatus = Integer.parseInt((String) similarContainerMap.get("checkedButton")); final String siteId = (String) similarContainerMap.get("simCont:" + i + "_siteId"); if (checkedButtonStatus == 2 || siteId == null) { final String parentContId = (String) similarContainerMap.get("simCont:" + i + "_parentContainerId"); final String positionDimensionOne = (String) similarContainerMap.get("simCont:" + i + "_positionDimensionOne"); final String positionDimensionTwo = (String) similarContainerMap.get("simCont:" + i + "_positionDimensionTwo"); if (parentContId.equals("-1") || positionDimensionOne.equals("-1") || positionDimensionTwo.equals("-1")) { throw this.getBizLogicException( null, "errors.item.required", ApplicationProperties.getValue("similarcontainers.location")); } } else { if (siteId.equals("-1")) { throw this.getBizLogicException( null, "errors.item.required", ApplicationProperties.getValue("storageContainer.site")); } } } } } catch (final ApplicationException exp) { this.logger.error(exp.getMessage(), exp); exp.printStackTrace(); throw this.getBizLogicException(exp, exp.getErrorKeyName(), exp.getMsgValues()); } return true; }