List of usage examples for org.apache.commons.validator GenericValidator isBlankOrNull
public static boolean isBlankOrNull(String value)
Checks if the field isn't null and length of the field is greater than zero not including whitespace.
From source file:jp.terasoluna.fw.web.struts.form.FieldChecksEx.java
/** * wtB?[hv`FbN?B//from w w w . j a v a 2s . co m * * <p> * G?[???AG?[????A wG?[?Xg?B G?[?bZ?[WtH?[}bg?A * <code>validation-rules.xml</code>L?q?B<br> * ?A5<code>true</code>p ???B * </p> * <h5>validation.xmlL?q</h5> * <code><pre> * <form name="/sample"> * ?E?E?E * <field property="escape" * depends="stringLength"> * <arg0 key="sample.escape"/> * <var> * <var-name>length</var-name> * <var-value>5</var-value> * </var> * </field> * ?E?E?E * </form> * </pre></code> * <h5>validation.xml?v<var>vf</h5> * <table border="1"> * <tr> * <td><center><b><code>var-name</code></b></center></td> * <td><center><b><code>var-value</code></b></center></td> * <td><center><b>K?{?</b></center></td> * <td><center><b>Tv</b></center></td> * </tr> * <tr> * <td> stringLength </td> * <td>?</td> * <td>false</td> * <td>w? <code>true</code> ?<code>true</code>p?B</td> * </tr> * </table> * * @param bean * ??IuWFNg * @param va * ValidatorpValidatorAction * @param field * tB?[hIuWFNg * @param errors * ANVG?[ * @param validator * ValidatorCX^X * @param request * HTTPNGXg * @return l? <code>true</code> */ public static boolean validateStringLength(Object bean, ValidatorAction va, Field field, ActionMessages errors, Validator validator, HttpServletRequest request) { // beannull?AG?[?O?o?Atruep?B if (bean == null) { log.error("bean is null."); return true; } // String lengthStr = field.getVarValue("stringLength"); // w??A`FbN?s if (lengthStr == null || "".equals(lengthStr)) { return true; } String value = null; if (isString(bean)) { value = (String) bean; } else { value = ValidatorUtils.getValueAsString(bean, field.getProperty()); } // ?lnull?Atruep if (GenericValidator.isBlankOrNull(value)) { return true; } int checkLength = 0; try { checkLength = Integer.valueOf(lengthStr).intValue(); } catch (NumberFormatException e) { // wints\?? log.error("stringLength is not numeric(integer).", e); return true; } // length?Afalsep if (value.length() != checkLength) { errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field)); return false; } return true; }
From source file:jp.terasoluna.fw.validation.FieldChecks.java
/** * ???float??????/*from w w w . j a v a2 s . c om*/ * ?????? * * <p>???10?100??????????? * true????? * * <h5>validation.xml?</h5> * <code><pre> * <form name="sample"> * * <field property="floatField" * depends="floatRange"> * <arg key="sample.floatField" position="0"/> * <var> * <var-name>floatRangeMin</var-name> * <var-value>10</var-value> * </var> * <var> * <var-name>floatRangeMax</var-name> * <var-value>100</var-value> * </var> * </field> * * </form> * </pre></code> * * <h5>validation.xml???<var>?</h5> * <table border="1"> * <tr> * <td><center><b><code>var-name</code></b></center></td> * <td><center><b><code>var-value</code></b></center></td> * <td><center><b></b></center></td> * <td><center><b>?</b></center></td> * </tr> * <tr> * <td> floatRangeMin </td> * <td>?</td> * <td>false</td> * <td>????????Float??? * ? * ????????</td> * </tr> * <tr> * <td> floatRangeMax </td> * <td></td> * <td>false</td> * <td>???????Float?? * ? * ????????</td> * </tr> * </table> * * @param bean ?JavaBean * @param va ?<code>ValidatorAction</code> * @param field ?<code>Field</code> * @param errors ????? * ?? * @return ??????<code>true</code>? * ????<code>false</code>? * @throws ValidatorException validation?????? * ? */ public boolean validateFloatRange(Object bean, ValidatorAction va, Field field, ValidationErrors errors) throws ValidatorException { // String value = extractValue(bean, field); if (StringUtils.isEmpty(value)) { return true; } // float?? --- Float?????? float floatValue = 0; try { floatValue = Float.parseFloat(value); } catch (NumberFormatException e) { rejectValue(errors, field, va, bean); return false; } // --- ?Float?????? // ???? String strMin = field.getVarValue("floatRangeMin"); float min = Float.MIN_VALUE; if (!GenericValidator.isBlankOrNull(strMin)) { try { min = Float.parseFloat(strMin); } catch (NumberFormatException e) { String message = "Mistake on validation definition file. " + "- floatRangeMin is not number. " + "You'll have to check it over. "; log.error(message, e); throw new ValidatorException(message); } } String strMax = field.getVarValue("floatRangeMax"); float max = Float.MAX_VALUE; if (!GenericValidator.isBlankOrNull(strMax)) { try { max = Float.parseFloat(strMax); } catch (NumberFormatException e) { String message = "Mistake on validation definition file. " + "- floatRangeMax is not number. " + "You'll have to check it over. "; log.error(message, e); throw new ValidatorException(message); } } // if (!GenericValidator.isInRange(floatValue, min, max)) { rejectValue(errors, field, va, bean); return false; } return true; }
From source file:it.eng.spagobi.tools.scheduler.jobs.CopyOfExecuteBIDocumentJob.java
private String[] findRecipients(DispatchContext info, BIObject biobj, IDataStore dataStore) { logger.debug("IN"); String[] toReturn = null;//from w ww.ja v a 2 s. c o m List<String> recipients = new ArrayList(); try { recipients.addAll(findRecipientsFromFixedList(info)); } catch (Exception e) { logger.error(e); } try { recipients.addAll(findRecipientsFromDataSet(info, biobj, dataStore)); } catch (Exception e) { logger.error(e); } try { recipients.addAll(findRecipientsFromExpression(info, biobj)); } catch (Exception e) { logger.error(e); } // validates addresses List<String> validRecipients = new ArrayList(); Iterator it = recipients.iterator(); while (it.hasNext()) { String recipient = (String) it.next(); if (GenericValidator.isBlankOrNull(recipient) || !GenericValidator.isEmail(recipient)) { logger.error("[" + recipient + "] is not a valid email address."); continue; } if (validRecipients.contains(recipient)) continue; validRecipients.add(recipient); } toReturn = validRecipients.toArray(new String[0]); logger.debug("OUT: returning " + toReturn); return toReturn; }
From source file:jp.terasoluna.fw.web.struts.form.FieldChecksEx.java
/** * wtB?[hoCgv`FbN?B//from w w w.j ava 2 s . c o m * * <p> * G?[???AG?[????A wG?[?Xg?B G?[?bZ?[WtH?[}bg?A * <code>validation-rules.xml</code>L?q?B<br> * ?AoCg5<code>true</code>p ???B * </p> * <h5>validation.xmlL?q</h5> * <code><pre> * <form name="/sample"> * ?E?E?E * <field property="escape" * depends="byteLength"> * <arg0 key="sample.escape"/> * <var> * <var-name>byteLength</var-name> * <var-value>5</var-value> * </var> * <var> * <var-name>encoding</var-name> * <var-value>Windows-31J</var-value> * </var> * </field> * ?E?E?E * </form> * </pre></code> * <h5>validation.xml?v<var>vf</h5> * <table border="1"> * <tr> * <td><center><b><code>var-name</code></b></center></td> * <td><center><b><code>var-value</code></b></center></td> * <td><center><b>K?{?</b></center></td> * <td><center><b>Tv</b></center></td> * </tr> * <tr> * <td> byteLength </td> * <td>oCg?</td> * <td>false</td> * <td>oCg?oCg?B</td> * </tr> * <tr> * <td> encoding </td> * <td>GR?[fBO</td> * <td>false</td> * <td>oCg?gpGR?[fBO?B ???VMftHgGR?[fBOgp?B</td> * </tr> * </table> * * @param bean * ??IuWFNg * @param va * ValidatorpValidatorAction * @param field * tB?[hIuWFNg * @param errors * ANVG?[ * @param validator * ValidatorCX^X * @param request * HTTPNGXg * @return l? <code>true</code> */ public static boolean validateByteLength(Object bean, ValidatorAction va, Field field, ActionMessages errors, Validator validator, HttpServletRequest request) { // beannull?AG?[?O?o?Atruep?B if (bean == null) { log.error("bean is null."); return true; } // l String value = null; if (isString(bean)) { value = (String) bean; } else { value = ValidatorUtils.getValueAsString(bean, field.getProperty()); } // ?lnull?Atruep if (GenericValidator.isBlankOrNull(value)) { return true; } // oCg String lengthStr = field.getVarValue("byteLength"); // oCgw??A`FbN?s if (lengthStr == null || "".equals(lengthStr)) { if (log.isInfoEnabled()) { log.info("length is not specified."); } return true; } int checkLength = 0; try { checkLength = Integer.valueOf(lengthStr).intValue(); } catch (NumberFormatException e) { // wints\?? log.error("byteLength is not numeric(integer).", e); return true; } // GR?[fBO String encoding = field.getVarValue("encoding"); int bytesLength = getByteLength(value, encoding); // oCg?length?Afalsep if (bytesLength != checkLength) { errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field)); return false; } return true; }
From source file:jp.terasoluna.fw.web.struts.form.FieldChecksEx.java
/** * wtB?[hoCg w`FbN?B//from w w w .ja v a 2 s.c o m * * <p> * G?[???AG?[????A wG?[?Xg?B G?[?bZ?[WtH?[}bg?A * <code>validation-rules.xml</code>L?q?B<br> * ?AoCg5??A10 <code>true</code> p???B * </p> * <h5>validation.xmlL?q</h5> * <code><pre> * <form name="/sample"> * ?E?E?E * <field property="escape" * depends="byteRange"> * <arg0 key="sample.escape"/> * <var> * <var-name>maxByte</var-name> * <var-value>10</var-value> * </var> * <var> * <var-name>minByte</var-name> * <var-value>5</var-value> * </var> * <var> * <var-name>encoding</var-name> * <var-value>Windows-31J</var-value> * </var> * </field> * ?E?E?E * </form> * </pre></code> * <h5>validation.xml?v<var>vf</h5> * <table border="1"> * <tr> * <td><center><b><code>var-name</code></b></center></td> * <td><center><b><code>var-value</code></b></center></td> * <td><center><b>K?{?</b></center></td> * <td><center><b>Tv</b></center></td> * </tr> * <tr> * <td> maxByte </td> * <td>?oCg?</td> * <td>false</td> * <td>oCg??oCg?B ???int^?l?B</td> * </tr> * <tr> * <td> minByte </td> * <td>?oCg?</td> * <td>false</td> * <td>oCg???oCg?B ???0?B</td> * </tr> * <tr> * <td> encoding </td> * <td>GR?[fBO</td> * <td>false</td> * <td>oCg?gpGR?[fBO?B ???VMftHgGR?[fBOgp?B</td> * </tr> * </table> * * @param bean * ??IuWFNg * @param va * ValidatorpValidatorAction * @param field * tB?[hIuWFNg * @param errors * ANVG?[ * @param validator * ValidatorCX^X * @param request * HTTPNGXg * @return l? <code>true</code> */ public static boolean validateByteRange(Object bean, ValidatorAction va, Field field, ActionMessages errors, Validator validator, HttpServletRequest request) { // beannull?AG?[?O?o?Atruep?B if (bean == null) { log.error("bean is null."); return true; } // l String value = null; if (isString(bean)) { value = (String) bean; } else { value = ValidatorUtils.getValueAsString(bean, field.getProperty()); } // ?lnull?Atruep if (GenericValidator.isBlankOrNull(value)) { return true; } // GR?[fBO String encoding = field.getVarValue("encoding"); // oCg int bytesLength = getByteLength(value, encoding); int min = 0; String minStr = field.getVarValue("minByte"); if (!GenericValidator.isBlankOrNull(minStr)) { try { min = Integer.parseInt(minStr); } catch (NumberFormatException e) { log.error("", e); } } int max = Integer.MAX_VALUE; String maxStr = field.getVarValue("maxByte"); if (!GenericValidator.isBlankOrNull(maxStr)) { try { max = Integer.parseInt(maxStr); } catch (NumberFormatException e) { log.error("", e); } } if (!GenericValidator.isInRange(bytesLength, min, max)) { errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field)); return false; } return true; }
From source file:it.eng.spagobi.analiticalmodel.document.service.DetailBIObjectModule.java
/** * Inserts/Modifies the detail of a BI Object according to the user request. * When a BI Object is modified, the <code>modifyBIObject</code> method is * called; when a new BI Object is added, the <code>insertBIObject</code>method * is called. These two cases are differentiated by the <code>mod</code> * String input value ./* w ww . j a v a 2 s . c om*/ * * @param request * The request information contained in a SourceBean Object * @param mod * A request string used to differentiate insert/modify * operations * @param response * The response SourceBean * @throws EMFUserError * If an exception occurs * @throws SourceBeanException * If a SourceBean exception occurs */ private void modBIObject(SourceBean request, String mod, SourceBean response) throws EMFUserError, SourceBeanException { HashMap<String, String> logParam = new HashMap(); try { // build a biobject using data in request BIObject obj = helper.recoverBIObjectDetails(mod); if (obj != null) { logParam.put("Document_name", obj.getName()); logParam.put("Document_Label", obj.getLabel()); logParam.put("Creation_User", obj.getCreationUser()); logParam.put("path", obj.getPath()); logParam.put("tenant", obj.getTenant()); logParam.put("state", obj.getStateCode()); if (obj.getBiObjectTypeID() != null) logParam.put("Object Type", obj.getBiObjectTypeID().toString()); if (obj.getEngine() != null) logParam.put("Engine", obj.getEngine().getName()); } boolean flgReloadTemp = false; // define variable that contains the id of the parameter selected String selectedObjParIdStr = null; selectedObjParIdStr = "-1"; //next attribute defines if load automatically all parameters for a document composition type or not. boolean loadParsDCClicked = request.getAttribute("loadParsDC") != null; // make a validation of the request data ValidationCoordinator.validate("PAGE", "BIObjectValidation", this); // build and ObjTemplate object using data into request ObjTemplate objTemp = helper.recoverBIObjTemplateDetails(); if (objTemp != null) { objTemp.setBiobjId(obj.getId()); } //if the template is not loaded check if default version is changed if (objTemp == null) { String strCurTempVer = (String) request.getAttribute("versionTemplate"); if (strCurTempVer != null && !strCurTempVer.equals("")) { Integer idCurTempVer = Integer.valueOf((strCurTempVer).trim()); if (idCurTempVer != null) { objTemp = DAOFactory.getObjTemplateDAO().getBIObjectActiveTemplate(obj.getId()); if (objTemp.getId().compareTo(idCurTempVer) != 0) { flgReloadTemp = true; List lstTemplatesObj = DAOFactory.getObjTemplateDAO() .getBIObjectTemplateList(obj.getId()); for (int i = 0; i < lstTemplatesObj.size(); i++) { objTemp = (ObjTemplate) lstTemplatesObj.get(i); if (objTemp.getId().compareTo(idCurTempVer) == 0) break; } } } } } else flgReloadTemp = true; // if there are some validation errors into the errorHandler return without write into DB if (!errorHandler.isOKByCategory(EMFErrorCategory.VALIDATION_ERROR)) { helper.fillResponse(initialPath); prepareBIObjectDetailPage(response, obj, null, selectedObjParIdStr, mod, false, false); AuditLogUtilities.updateAudit(getHttpRequest(), profile, "DOCUMENT.MODIFY_VALIDATION_ERROR", logParam, "ERR"); return; } // based on the modality do different tasks if (mod.equalsIgnoreCase(SpagoBIConstants.DETAIL_INS)) { //if data source value is not specified, it gets the default data source associated at the engine // if (obj.getDataSourceId() == null){ // Engine engine = obj.getEngine(); // Integer dsId = engine.getDataSourceId(); // obj.setDataSourceId(dsId); // } // inserts into DB the new BIObject if (objTemp == null) { biobjDAO.insertBIObject(obj, loadParsDCClicked); } else { biobjDAO.insertBIObject(obj, objTemp, loadParsDCClicked); } AuditLogUtilities.updateAudit(getHttpRequest(), profile, "DOCUMENT.ADD", logParam, "OK"); } else if (mod.equalsIgnoreCase(SpagoBIConstants.DETAIL_MOD)) { BIObjectParameter biObjPar = null; Object selectedObjParIdObj = request.getAttribute("selected_obj_par_id"); Object deleteBIObjectParameter = request.getAttribute("deleteBIObjectParameter"); if (selectedObjParIdObj != null) { // it is requested to view another BIObjectParameter than the one visible int selectedObjParId = helper.findBIObjParId(selectedObjParIdObj); selectedObjParIdStr = new Integer(selectedObjParId).toString(); String saveBIObjectParameter = (String) request.getAttribute("saveBIObjectParameter"); if (saveBIObjectParameter != null && saveBIObjectParameter.equalsIgnoreCase("yes")) { // it is requested to save the visible BIObjectParameter ValidationCoordinator.validate("PAGE", "BIObjectParameterValidation", this); biObjPar = helper.recoverBIObjectParameterDetails(obj.getId()); // If it's a new BIObjectParameter or if the Parameter was changed controls // that the BIObjectParameter url name is not already in use urlNameControl(obj.getId(), biObjPar); helper.fillResponse(initialPath); verifyForDependencies(biObjPar); // if there are some validation errors into the errorHandler does not write into DB if (!errorHandler.isOKByCategory(EMFErrorCategory.VALIDATION_ERROR)) { helper.fillResponse(initialPath); prepareBIObjectDetailPage(response, obj, biObjPar, biObjPar.getId().toString(), ObjectsTreeConstants.DETAIL_MOD, false, false); AuditLogUtilities.updateAudit(getHttpRequest(), profile, "DOCUMENT.MODIFY_DETAIL_MOD", logParam, "OK"); return; } IBIObjectParameterDAO objParDAO = DAOFactory.getBIObjectParameterDAO(); objParDAO.setUserProfile(profile); if (biObjPar.getId().intValue() == -1) { // it is requested to insert a new BIObjectParameter objParDAO.insertBIObjectParameter(biObjPar); } else { // it is requested to modify a BIObjectParameter objParDAO.modifyBIObjectParameter(biObjPar); } prepareBIObjectDetailPage(response, obj, null, selectedObjParIdStr, ObjectsTreeConstants.DETAIL_MOD, false, true); logParam.put("Document_name", obj.getName()); AuditLogUtilities.updateAudit(getHttpRequest(), profile, "DOCUMENT.MODIFY_DETAIL_MOD", logParam, "OK"); return; } else { helper.fillResponse(initialPath); prepareBIObjectDetailPage(response, obj, null, selectedObjParIdStr, ObjectsTreeConstants.DETAIL_MOD, false, true); // exits without writing into DB logParam.put("Document_name", obj.getName()); AuditLogUtilities.updateAudit(getHttpRequest(), profile, "DOCUMENT.MODIFY_DETAIL_MOD", logParam, "OK"); return; } } else if (deleteBIObjectParameter != null) { // it is requested to delete the visible BIObjectParameter int objParId = helper.findBIObjParId(deleteBIObjectParameter); Integer objParIdInt = new Integer(objParId); EMFValidationError error = checkForDependancies(objParIdInt); if (error != null) { errorHandler.addError(error); AuditLogUtilities.updateAudit(getHttpRequest(), profile, "DOCUMENT.MODIFY_DETAIL_MOD", logParam, "KO"); } helper.fillResponse(initialPath); // if there are some validation errors into the errorHandler does not write into DB if (!errorHandler.isOKByCategory(EMFErrorCategory.VALIDATION_ERROR)) { helper.fillResponse(initialPath); prepareBIObjectDetailPage(response, obj, biObjPar, biObjPar.getId().toString(), ObjectsTreeConstants.DETAIL_MOD, false, false); AuditLogUtilities.updateAudit(getHttpRequest(), profile, "DOCUMENT.MODIFY_DETAIL_MOD", logParam, "KO"); return; } // deletes the BIObjectParameter IBIObjectParameterDAO objParDAO = DAOFactory.getBIObjectParameterDAO(); BIObjectParameter objPar = objParDAO.loadForDetailByObjParId(new Integer(objParId)); objParDAO.eraseBIObjectParameter(objPar, true); selectedObjParIdStr = ""; prepareBIObjectDetailPage(response, obj, null, selectedObjParIdStr, ObjectsTreeConstants.DETAIL_MOD, false, true); logParam.put("Document_name", obj.getName()); AuditLogUtilities.updateAudit(getHttpRequest(), profile, "DOCUMENT.MODIFY_DETAIL_MOD", logParam, "OK"); return; } else { // It is request to save the BIObject with also the visible BIObjectParameter biObjPar = helper.recoverBIObjectParameterDetails(obj.getId()); // If a new BIParameter was visualized and no fields were inserted, the BIParameter is not validated and saved boolean biParameterToBeSaved = true; if ((obj.getBiObjectTypeCode().equalsIgnoreCase(SpagoBIConstants.DOCUMENT_COMPOSITE_TYPE) && flgReloadTemp) || (GenericValidator.isBlankOrNull(biObjPar.getLabel()) && biObjPar.getId().intValue() == -1 && GenericValidator.isBlankOrNull(biObjPar.getParameterUrlName()) && biObjPar.getParID().intValue() == -1)) biParameterToBeSaved = false; if (biParameterToBeSaved) { ValidationCoordinator.validate("PAGE", "BIObjectParameterValidation", this); // If it's a new BIObjectParameter or if the Parameter was changed controls // that the BIObjectParameter url name is not already in use urlNameControl(obj.getId(), biObjPar); } ValidationCoordinator.validate("PAGE", "BIObjectValidation", this); verifyForDependencies(biObjPar); // if there are some validation errors into the errorHandler does not write into DB if (!errorHandler.isOKByCategory(EMFErrorCategory.VALIDATION_ERROR)) { helper.fillResponse(initialPath); prepareBIObjectDetailPage(response, obj, biObjPar, biObjPar.getId().toString(), ObjectsTreeConstants.DETAIL_MOD, false, false); logParam.put("Document_name", obj.getName()); AuditLogUtilities.updateAudit(getHttpRequest(), profile, "DOCUMENT.MODIFY_DETAIL_MOD", logParam, "OK"); return; } // it is requested to modify the main values of the BIObject if (objTemp == null) { biobjDAO.modifyBIObject(obj, loadParsDCClicked); } else { biobjDAO.modifyBIObject(obj, objTemp, loadParsDCClicked); } // reloads the BIObject obj = biobjDAO.loadBIObjectForDetail(obj.getId()); // check if there's a parameter to save and in case save it if (biParameterToBeSaved) { IBIObjectParameterDAO objParDAO = DAOFactory.getBIObjectParameterDAO(); objParDAO.setUserProfile(profile); if (biObjPar.getId().intValue() == -1) { // it is requested to insert a new BIObjectParameter objParDAO.insertBIObjectParameter(biObjPar); // reload the BIObjectParameter with the given url name biObjPar = reloadBIObjectParameter(obj.getId(), biObjPar.getParameterUrlName()); } else { // it is requested to modify a BIObjectParameter objParDAO.modifyBIObjectParameter(biObjPar); } selectedObjParIdStr = biObjPar.getId().toString(); } else selectedObjParIdStr = "-1"; } AuditLogUtilities.updateAudit(getHttpRequest(), profile, "DOCUMENT.MODIFY", logParam, "OK"); } // reloads the BIObject with the correct Id obj = biobjDAO.loadBIObjectForDetail(obj.getId()); /* *indexes biobject by modifying document in index **/ LuceneIndexer.updateBiobjInIndex(obj, false); // based on the kind of back put different data into response Object saveAndGoBack = request.getAttribute("saveAndGoBack"); if (saveAndGoBack != null) { // it is request to save the main BIObject details and to go back response.setAttribute("loopback", "true"); } else { // it is requested to save and remain in the BIObject detail page response.setAttribute(ObjectsTreeConstants.OBJECT_ID, obj.getId().toString()); response.setAttribute("selected_obj_par_id", selectedObjParIdStr); response.setAttribute("saveLoop", "true"); } } catch (EMFUserError error) { logger.error("Cannot fill response container", error); try { AuditLogUtilities.updateAudit(getHttpRequest(), profile, "DOCUMENT.ADD/MODIFY", logParam, "ERR"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } throw error; } catch (Exception ex) { logger.error("Cannot fill response container", ex); try { AuditLogUtilities.updateAudit(getHttpRequest(), profile, "DOCUMENT.ADD/MODIFY", logParam, "ERR"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } throw new EMFUserError(EMFErrorSeverity.ERROR, 100); } }
From source file:jp.terasoluna.fw.web.struts.form.FieldChecksEx.java
/** * tw`FbN?B//from w w w. j a v a 2 s . c o m * * <p> * G?[???AG?[????A wG?[?Xg?B G?[?bZ?[WtH?[}bg?A * <code>validation-rules.xml</code>L?q?B<br> * ?At2000/01/012010/12/31 ???B * </p> * <h5>validation.xmlL?q</h5> * <code><pre> * <form name="/sample"> * ?E?E?E * <field property="date" * depends="dateRange"> * <arg key="label.date" position="0"/> * <var> * <var-name>startDate</var-name> * <var-value>2000/01/01</var-value> * </var> * <var> * <var-name>endDate</var-name> * <var-value>2010/12/31</var-value> * </var> * <var> * <var-name>datePattern</var-name> * <var-value>yyyy/MM/dd</var-value> * </var> * </field> * ?E?E?E * </form> * </pre></code> * <h5>validation.xml?v<var>vf</h5> * <table border="1"> * <tr> * <td><center><b><code>var-name</code></b></center></td> * <td><center><b><code>var-value</code></b></center></td> * <td><center><b>K?{?</b></center></td> * <td><center><b>Tv</b></center></td> * </tr> * <tr> * <td> startDate </td> * <td>Jnt</td> * <td>false</td> * <td>tJnlt?B * datePatterndatePatternStrictwttH?[}bgv?B</td> * </tr> * <tr> * <td> endDate </td> * <td>?It</td> * <td>false</td> * <td>t?Ilt?B * datePatterndatePatternStrictwttH?[}bgv?B</td> * </tr> * <tr> * <td> datePattern </td> * <td>tp^?[</td> * <td>false</td> * <td>tp^?[?BDate^tH?[}bg?[?]?B</td> * </tr> * <tr> * <td> datePatternStrict </td> * <td>tp^?[?BDate^tH?[}bg?[?]?B</td> * <td>false</td> * <td>tp^?[`FbN?s?B tp^?[yyyy/MM/dd???A2001/1/1G?[?B * datePatternw???AdatePatternwtH?[}bg D??B</td> * </tr> * </table> * * @param bean * ??IuWFNg * @param va * ValidatorpValidatorAction * @param field * tB?[hIuWFNg * @param errors * ANVG?[ * @param validator * ValidatorCX^X * @param request * HTTPNGXg * @return l? <code>true</code> */ public static boolean validateDateRange(Object bean, ValidatorAction va, Field field, ActionMessages errors, Validator validator, HttpServletRequest request) { // beannull?AG?[?O?o?Atruep?B if (bean == null) { log.error("bean is null."); return true; } String value = null; if (isString(bean)) { value = (String) bean; } else { value = ValidatorUtils.getValueAsString(bean, field.getProperty()); } // ?lnull?Atruep if (GenericValidator.isBlankOrNull(value)) { return true; } // t?`FbN String datePattern = field.getVarValue("datePattern"); String datePatternStrict = field.getVarValue("datePatternStrict"); Locale locale = RequestUtils.getUserLocale(request, null); Date result = null; try { if (datePattern != null && datePattern.length() > 0) { result = GenericTypeValidator.formatDate(value, datePattern, false); } else if (datePatternStrict != null && datePatternStrict.length() > 0) { result = GenericTypeValidator.formatDate(value, datePatternStrict, true); } else { result = GenericTypeValidator.formatDate(value, locale); } } catch (Exception e) { log.error(e.getMessage(), e); } if (result == null) { errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field)); return false; } // t`FbN // Jn String startDateStr = field.getVarValue("startDate"); // ?I String endDateStr = field.getVarValue("endDate"); if (startDateStr == null && endDateStr == null) { // tw???? return true; } // Jnt?~`FbN if (startDateStr != null && startDateStr.length() > 0) { Date startDate = null; if (datePattern != null && datePattern.length() > 0) { startDate = GenericTypeValidator.formatDate(startDateStr, datePattern, false); } else if (datePatternStrict != null && datePatternStrict.length() > 0) { startDate = GenericTypeValidator.formatDate(startDateStr, datePatternStrict, true); } else { startDate = GenericTypeValidator.formatDate(startDateStr, locale); } if (startDate == null) { errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field)); return false; } if (result.before(startDate)) { errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field)); return false; } } // ?ItO`FbN if (endDateStr != null && endDateStr.length() > 0) { Date endDate = null; if (datePattern != null && datePattern.length() > 0) { endDate = GenericTypeValidator.formatDate(endDateStr, datePattern, false); } else if (datePatternStrict != null && datePatternStrict.length() > 0) { endDate = GenericTypeValidator.formatDate(endDateStr, datePatternStrict, true); } else { endDate = GenericTypeValidator.formatDate(endDateStr, locale); } if (endDate == null) { errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field)); return false; } if (result.after(endDate)) { errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field)); return false; } } return true; }
From source file:jp.terasoluna.fw.validation.FieldChecks.java
/** * ?????????/*from ww w . j av a 2s. c o m*/ * ???? * ?????????? * errors???false?? * * <p>???????BigDecimal ?? * ??????????? * * ?????????????? * validation.xml ? isAccordedInteger() * ? "true" ?????? * ?????? * ????????????? * * ??????????????? * validation.xml?isAccordedScale?"true"????? * ??????? * * <p> * ??3??2????? * * <h5>validation.xml?</h5> * <code><pre> * <form name="sample"> * * <field property="numberField" * depends="number"> * <arg key="sample.numberField" position="0"/> * <var> * <var-name>integerLength</var-name> * <var-value>3</var-value> * </var> * <var> * <var-name>scale</var-name> * <var-value>2</var-value> * </var> * <var> * <var-name>isAccordedInteger</var-name> * <var-value>true</var-value> * </var> * <var> * <var-name>isAccordedScale</var-name> * <var-value>true</var-value> * </var> * </field> * * </form> * </pre></code> * <h5>validation.xml???<var>?</h5> * <table border="1"> * <tr> * <td><center><b><code>var-name</code></b></center></td> * <td><center><b><code>var-value</code></b></center></td> * <td><center><b></b></center></td> * <td><center><b>?</b></center></td> * </tr> * <tr> * <td> <code>integerLength</code> </td> * <td> ? </td> * <td> <code>false</code> </td> * <td>???<code>isAccordedInteger</code>? * ????????? * ???<code>int</code>??? * ???????</td> * </tr> * <tr> * <td> <code>scale</code> </td> * <td> ?? </td> * <td> <code>false</code> </td> * <td>?????<code>isAccordedScale</code>? * ????????? * ???<code>int</code>??? * ???????</td> * </tr> * <tr> * <td> <code>isAccordedInteger</code> </td> * <td> ?? </td> * <td> <code>false</code> </td> * <td> <code>true</code>??????????? * ????<code>true</code>????? * ????</td> * </tr> * <tr> * <td> <code>isAccordedScale</code> </td> * <td> ??? </td> * <td> <code>false</code> </td> * <td> <code>true</code>???????????? * ????<code>true</code>????? * ????</td> * </tr> * </table> * * @param bean ?JavaBean * @param va Validator????ValidatorAction * @param field * @param errors * @return ???? true * @throws ValidatorException validation?????? * ? */ public boolean validateNumber(Object bean, ValidatorAction va, Field field, ValidationErrors errors) throws ValidatorException { // String value = extractValue(bean, field); if (StringUtils.isEmpty(value)) { return true; } // ??????? if (!ValidationUtil.isHankakuString(value)) { rejectValue(errors, field, va, bean); return false; } // BigDecimal?? BigDecimal number = null; try { number = new BigDecimal(value); } catch (NumberFormatException e) { rejectValue(errors, field, va, bean); return false; } // ?? int integerLength = Integer.MAX_VALUE; String integerLengthStr = field.getVarValue("integerLength"); if (!GenericValidator.isBlankOrNull(integerLengthStr)) { try { integerLength = Integer.parseInt(integerLengthStr); } catch (NumberFormatException e) { String message = "Mistake on validation definition file. " + "- integerLength is not number. " + "You'll have to check it over. "; log.error(message, e); throw new ValidatorException(message); } } // ??? int scaleLength = Integer.MAX_VALUE; String scaleStr = field.getVarValue("scale"); if (!GenericValidator.isBlankOrNull(scaleStr)) { try { scaleLength = Integer.parseInt(scaleStr); } catch (NumberFormatException e) { String message = "Mistake on validation definition file. " + "- scale is not number. " + "You'll have to check it over. "; log.error(message, e); throw new ValidatorException(message); } } // ??? boolean isAccordedInteger = "true".equals(field.getVarValue("isAccordedInteger")); // ???? boolean isAccordedScale = "true".equals(field.getVarValue("isAccordedScale")); // if (!ValidationUtil.isNumber(number, integerLength, isAccordedInteger, scaleLength, isAccordedScale)) { rejectValue(errors, field, va, bean); return false; } return true; }
From source file:jp.terasoluna.fw.validation.FieldChecks.java
/** * ????????//w ww . ja v a 2 s . co m * ??????? * ??????????errors??? * false?? * * <p>?????????????true?? * ??? * * <h5>validation.xml?</h5> * <code><pre> * <form name="sample"> * * <field property="arrayField" * depends="arrayRange"> * <arg key="sample.arrayField" position="0"/> * <var> * <var-name>minArrayLength</var-name> * <var-value>4</var-value> * </var> * <var> * <var-name>maxArrayLength</var-name> * <var-value>7</var-value> * </var> * </field> * * </form> * </pre></code> * <h5>validation.xml???<var>?</h5> * <table border="1"> * <tr> * <td><center><b><code>var-name</code></b></center></td> * <td><center><b><code>var-value</code></b></center></td> * <td><center><b></b></center></td> * <td><center><b>?</b></center></td> * </tr> * <tr> * <td> minArrayLength </td> * <td>??</td> * <td>false</td> * <td>????? * ???????????</td> * </tr> * <tr> * <td> maxArrayLength </td> * <td>?</td> * <td>false</td> * <td>???? * ??????? * <code>int</code>???</td> * </tr> * </table> * * @param bean ?JavaBean * @param va Validator????ValidatorAction * @param field * @param errors * @return ???? true * @throws ValidatorException validation?????? * ? */ public boolean validateArrayRange(Object bean, ValidatorAction va, Field field, ValidationErrors errors) throws ValidatorException { // ??bean?null???ValidatorException if (bean == null) { String message = "target of validateArrayRange must be not null."; log.error(message); throw new ValidatorException(message); } try { Class<?> type = BeanUtil.getBeanPropertyType(bean, field.getProperty()); if (type == null) { String message = "Cannot get property type[" + bean.getClass().getName() + "." + field.getProperty() + "]"; log.error(message); throw new ValidatorException(message); } else if (!type.isArray() && !Collection.class.isAssignableFrom(type)) { String message = "property [" + bean.getClass().getName() + "." + field.getProperty() + "] must be instance of Array or Collection."; log.error(message); throw new ValidatorException(message); } } catch (PropertyAccessException e) { String message = "Cannot get property type[" + bean.getClass().getName() + "." + field.getProperty() + "]"; log.error(message, e); throw new ValidatorException(message); } // Object obj = null; try { obj = BeanUtil.getBeanProperty(bean, field.getProperty()); } catch (PropertyAccessException e) { String message = "Cannot get property [" + bean.getClass().getName() + "." + field.getProperty() + "]"; log.error(message, e); throw new ValidatorException(message); } // ???? int min = 0; String minStr = field.getVarValue("minArrayLength"); if (!GenericValidator.isBlankOrNull(minStr)) { try { min = Integer.parseInt(minStr); } catch (NumberFormatException e) { String message = "Mistake on validation definition file. " + "- minArrayLength is not number. " + "You'll have to check it over. "; log.error(message, e); throw new ValidatorException(message); } } // ??? int max = Integer.MAX_VALUE; String maxStr = field.getVarValue("maxArrayLength"); if (!GenericValidator.isBlankOrNull(maxStr)) { try { max = Integer.parseInt(maxStr); } catch (NumberFormatException e) { String message = "Mistake on validation definition file. " + "- maxArrayLength is not number. " + "You'll have to check it over. "; log.error(message, e); throw new ValidatorException(message); } } // try { if (!ValidationUtil.isArrayInRange(obj, min, max)) { rejectValue(errors, field, va, bean); return false; } } catch (IllegalArgumentException e) { log.error(e.getMessage()); throw new ValidatorException(e.getMessage()); } return true; }
From source file:jp.terasoluna.fw.validation.FieldChecks.java
/** * ???????????//from w w w . ja v a 2 s.co m * ?? * ??????????errors??? * false?? * * <p>????5?10??????? true * ????? * * <h5>validation.xml?</h5> * <code><pre> * <form name="sample"> * * <field property="stringField" * depends="byteRange"> * <arg key="sample.stringField" position="0"/> * <var> * <var-name>maxByteLength</var-name> * <var-value>10</var-value> * </var> * <var> * <var-name>minByteLength</var-name> * <var-value>5</var-value> * </var> * <var> * <var-name>encoding</var-name> * <var-value>Windows-31J</var-value> * </var> * </field> * * </form> * </pre></code> * <h5>validation.xml???<var>?</h5> * <table border="1"> * <tr> * <td><center><b><code>var-name</code></b></center></td> * <td><center><b><code>var-value</code></b></center></td> * <td><center><b></b></center></td> * <td><center><b>?</b></center></td> * </tr> * <tr> * <td> maxByteLength </td> * <td>?</td> * <td>false</td> * <td>?????? * ???<code>int</code>???</td> * </tr> * <tr> * <td> minByteLength </td> * <td>??</td> * <td>false</td> * <td>??????? * ???0??</td> * </tr> * <tr> * <td> encoding </td> * <td></td> * <td>false</td> * <td>?????? * ?????VM???</td> * </tr> * </table> * * @param bean ? * @param va Validator????ValidatorAction * @param field * @param errors * @return ???? true * @throws ValidatorException validation?????? * ? */ public boolean validateByteRange(Object bean, ValidatorAction va, Field field, ValidationErrors errors) throws ValidatorException { // String value = extractValue(bean, field); if (StringUtils.isEmpty(value)) { return true; } // String encoding = field.getVarValue("encoding"); // ?? int min = 0; String minStr = field.getVarValue("minByteLength"); if (!GenericValidator.isBlankOrNull(minStr)) { try { min = Integer.parseInt(minStr); } catch (NumberFormatException e) { String message = "Mistake on validation definition file. " + "- minByteLength is not number. " + "You'll have to check it over. "; log.error(message, e); throw new ValidatorException(message); } } // ? int max = Integer.MAX_VALUE; String maxStr = field.getVarValue("maxByteLength"); if (!GenericValidator.isBlankOrNull(maxStr)) { try { max = Integer.parseInt(maxStr); } catch (NumberFormatException e) { String message = "Mistake on validation definition file. " + "- maxByteLength is not number. " + "You'll have to check it over. "; log.error(message, e); throw new ValidatorException(message); } } // try { if (!ValidationUtil.isByteInRange(value, encoding, min, max)) { rejectValue(errors, field, va, bean); return false; } } catch (IllegalArgumentException e) { log.error("encoding[" + encoding + "] is not supported."); throw new ValidatorException("encoding[" + encoding + "] is not supported."); } return true; }