/projects/wct-1.5.2/WCTCore/src-app/org/webcurator/ui/site/validator/SiteAgencyValidator.java

https://gitlab.com/essere.lab.public/qualitas.class-corpus · Java · 93 lines · 50 code · 15 blank · 28 comment · 17 complexity · 7c092a323ca8afc299cdca801e429a80 MD5 · raw file

  1. /*
  2. * Copyright 2006 The National Library of New Zealand
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. package org.webcurator.ui.site.validator;
  17. import org.springframework.validation.Errors;
  18. import org.springframework.validation.ValidationUtils;
  19. import org.webcurator.core.sites.SiteManager;
  20. import org.webcurator.ui.common.validation.AbstractBaseValidator;
  21. import org.webcurator.ui.common.validation.ValidatorUtil;
  22. import org.webcurator.ui.site.command.SiteAuthorisingAgencyCommand;
  23. /**
  24. * Validate the saving of a harvest ahuthorisation.
  25. * @author nwaight
  26. */
  27. public class SiteAgencyValidator extends AbstractBaseValidator {
  28. private SiteManager siteManager = null;
  29. /* (non-Javadoc)
  30. * @see org.springframework.validation.Validator#supports(java.lang.Class)
  31. */
  32. public boolean supports(Class clazz) {
  33. return SiteAuthorisingAgencyCommand.class.equals(clazz);
  34. }
  35. private boolean isEmpty(String aString) {
  36. return aString == null || aString.trim().equals("");
  37. }
  38. /* (non-Javadoc)
  39. * @see org.springframework.validation.Validator#validate(java.lang.Object, org.springframework.validation.Errors)
  40. */
  41. public void validate(Object aCmd, Errors aErrors) {
  42. SiteAuthorisingAgencyCommand cmd = (SiteAuthorisingAgencyCommand) aCmd;
  43. if ("Save".equals(cmd.getCmdAction())) {
  44. ValidationUtils.rejectIfEmptyOrWhitespace(aErrors, "name", "required", new Object[] {"Name"}, "Name is a required field.");
  45. ValidationUtils.rejectIfEmptyOrWhitespace(aErrors, "contact", "required", new Object[] {"Contact"}, "Contact is a required field.");
  46. Long oid = null;
  47. if(!isEmpty(cmd.getIdentity()) && !cmd.getIdentity().startsWith("t")) {
  48. oid = Long.parseLong(cmd.getIdentity());
  49. }
  50. if( !siteManager.isAuthAgencyNameUnique( oid, cmd.getName())) {
  51. aErrors.reject("site.errors.authagent.duplicatename", new Object[] { cmd.getName() }, "");
  52. }
  53. boolean phoneBlank = (cmd.getPhoneNumber() == null || cmd.getPhoneNumber().trim().equals(""));
  54. boolean emailBlank = (cmd.getEmail() == null || cmd.getEmail().trim().equals(""));
  55. boolean addrBlank = (cmd.getAddress() == null || cmd.getAddress().trim().equals(""));
  56. if (phoneBlank && emailBlank && addrBlank) {
  57. aErrors.reject("one.of.required", new Object[] {"Phone, Email and Address"}, "One of the fields Phone, Email and Address must be populated.");
  58. }
  59. if (!aErrors.hasErrors()) {
  60. ValidatorUtil.validateStringMaxLength(aErrors, cmd.getName(), 255, "string.maxlength", new Object[] {"Name", "255"}, "Name is too long");
  61. ValidatorUtil.validateStringMaxLength(aErrors, cmd.getDescription(), 2048, "string.maxlength", new Object[] {"Description", "2048"}, "Description is too long");
  62. ValidatorUtil.validateStringMaxLength(aErrors, cmd.getContact(), 255, "string.maxlength", new Object[] {"Contact", "255"}, "Contact is too long");
  63. ValidatorUtil.validateStringMaxLength(aErrors, cmd.getAddress(), 2048, "string.maxlength", new Object[] {"Address", "2048"}, "Address is too long");
  64. ValidatorUtil.validateStringMaxLength(aErrors, cmd.getPhoneNumber(), 32, "string.maxlength", new Object[] {"Phone", "32"}, "Phone is too long");
  65. ValidatorUtil.validateStringMaxLength(aErrors, cmd.getEmail(), 255, "string.maxlength", new Object[] {"Email", "255"}, "Email is too long");
  66. }
  67. if (!aErrors.hasErrors()) {
  68. ValidatorUtil.validateRegEx(aErrors,cmd.getEmail(),ValidatorUtil.EMAIL_VALIDATION_REGEX,"invalid.email",new Object[] {"Email"},"Invalid email address");
  69. }
  70. }
  71. }
  72. /**
  73. * @param siteManager The siteManager to set.
  74. */
  75. public void setSiteManager(SiteManager siteManager) {
  76. this.siteManager = siteManager;
  77. }
  78. }