/* * OpenClinica is distributed under the * GNU Lesser General Public License (GNU LGPL). * For details see: http://www.openclinica.org/license * copyright 2003-2011 Akaza Research */ package org.akaza.openclinica.control.form.spreadsheet; import java.util.ResourceBundle; /** * Utility class for crf spreadsheet validation. Created at Aug. 2011, ywang */ public class SheetValidatorHelper { private SheetValidatorHelper() {} /** * Current SheetValidationType validated are: IS_REQUIRED, SHOULD_BE_EMPTY, SHOULD_BE_ST * @param sheetValidationCell * @param sheetErrors */ public static void validateSheetValidationCell(SheetValidationCell sheetValidationCell, SheetErrors sheetErrors) { boolean printHtmlInvalidErr = false; ResourceBundle resPageMsg = sheetErrors.getResPageMsg(); SheetCell cell = sheetValidationCell.getSheetArgumentCell().getSheetCell(); switch (sheetValidationCell.getType()) { case IS_REQUIRED: if(cell.getColValue() == null || cell.getColValue().isEmpty()) { StringBuffer message = sheetErrors.errorMessage(resPageMsg.getString(cell.getColTitle()), resPageMsg.getString(sheetValidationCell.getType().getDescription()), resPageMsg.getString(cell.getForWhich())); sheetErrors.addError(cell.getRowNum(), message); sheetErrors.putHtmlError(cell.getSheetNum(), cell.getRowNum(), cell.getColNum(), resPageMsg.getString("required_field")); } break; case SHOULD_BE_EMPTY: if(cell.getColValue() != null && cell.getColValue().length()>0) { StringBuffer message = sheetErrors.errorMessage(resPageMsg.getString(cell.getColTitle()), resPageMsg.getString(sheetValidationCell.getType().getDescription()), resPageMsg.getString(cell.getForWhich())); sheetErrors.addError(cell.getRowNum(), message); printHtmlInvalidErr = true; //putHtmlError(cell.getSheetNum(), cell.getRowNum(), cell.getColNum(), resPageMsg.getString("INVALID_FIELD")); } break; case SHOULD_BE_ST: if(cell.getColValue() == null || cell.getColValue().isEmpty() || !"ST".equalsIgnoreCase(cell.getColValue())) { StringBuffer message = sheetErrors.errorMessage(resPageMsg.getString(cell.getColTitle()), resPageMsg.getString(sheetValidationCell.getType().getDescription()), resPageMsg.getString(cell.getForWhich())); sheetErrors.addError(cell.getRowNum(), message); printHtmlInvalidErr = true; //putHtmlError(cell.getSheetNum(), cell.getRowNum(), cell.getColNum(), resPageMsg.getString("INVALID_FIELD")); } break; case NONE: break; } //print other message first and "INVALID_FIELD" only once. if(printHtmlInvalidErr && !sheetErrors.htmlErrors.containsKey(sheetErrors.htmlErrorKey(cell.getSheetNum(), cell.getRowNum(), cell.getColNum()))) sheetErrors.putHtmlError(cell.getSheetNum(), cell.getRowNum(), cell.getColNum(), resPageMsg.getString("INVALID_FIELD")); } }