-/**\r
-* Copyright (C) 2009 EDIT\r
-* European Distributed Institute of Taxonomy\r
-* http://www.e-taxonomy.eu\r
-*\r
-* The contents of this file are subject to the Mozilla Public License Version 1.1\r
-* See LICENSE.TXT at the top of this package for the full license terms.\r
-*/\r
-\r
-package eu.etaxonomy.cdm.validation.constraint;\r
-\r
-import java.util.HashSet;\r
-import java.util.List;\r
-import java.util.Set;\r
-\r
-import javax.validation.ConstraintValidator;\r
-import javax.validation.ConstraintValidatorContext;\r
-\r
-import org.springframework.beans.factory.annotation.Autowired;\r
-\r
-import eu.etaxonomy.cdm.api.service.INameService;\r
-import eu.etaxonomy.cdm.model.name.NonViralName;\r
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
-import eu.etaxonomy.cdm.validation.annotation.NoDuplicateNames;\r
-\r
-public class NoDuplicateNamesValidator implements\r
- ConstraintValidator<NoDuplicateNames,NonViralName> {\r
-\r
- private static Set<String> includeProperties;\r
-\r
- static {\r
- includeProperties = new HashSet<String>();\r
- includeProperties.add("genusOrUninomial");\r
- includeProperties.add("infraGenericEpithet");\r
- includeProperties.add("specificEpithet");\r
- includeProperties.add("infraSpecificEpithet");\r
- includeProperties.add("rank");\r
- includeProperties.add("nomenclaturalReference");\r
- includeProperties.add("nomenclaturalMicroReference");\r
- includeProperties.add("basionymAuthorTeam");\r
- includeProperties.add("exBasionymAuthorTeam");\r
- includeProperties.add("combinationAuthorTeam");\r
- includeProperties.add("exCombinationAuthorTeam");\r
- }\r
-\r
- private INameService nameService;\r
-\r
- @Autowired\r
- public void setNameService(INameService nameService) {\r
- this.nameService = nameService;\r
- }\r
-\r
- @Override\r
- public void initialize(NoDuplicateNames noDuplicateNames) { }\r
-\r
- @Override\r
- public boolean isValid(NonViralName name, ConstraintValidatorContext constraintContext) {\r
- if(name == null) {\r
- return true;\r
- } else {\r
- List<TaxonNameBase> matchingNonViralNames = nameService.list(name, includeProperties, null, null, null, null);\r
- if(matchingNonViralNames.size() > 0) {\r
- if(matchingNonViralNames.size() == 1 && matchingNonViralNames.get(0).equals(name)) {\r
- return true;\r
- } else {\r
- return false;\r
- }\r
- } else {\r
- return true;\r
- }\r
- }\r
- }\r
-}\r
+/**
+* Copyright (C) 2009 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.cdm.validation.constraint;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+import org.springframework.beans.factory.annotation.Autowired;
+
+import eu.etaxonomy.cdm.api.service.INameService;
+import eu.etaxonomy.cdm.model.name.NonViralName;
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.cdm.validation.annotation.NoDuplicateNames;
+
+public class NoDuplicateNamesValidator implements
+ ConstraintValidator<NoDuplicateNames,NonViralName> {
+
+ private static Set<String> includeProperties;
+
+ static {
+ includeProperties = new HashSet<String>();
+ includeProperties.add("genusOrUninomial");
+ includeProperties.add("infraGenericEpithet");
+ includeProperties.add("specificEpithet");
+ includeProperties.add("infraSpecificEpithet");
+ includeProperties.add("rank");
+ includeProperties.add("nomenclaturalReference");
+ includeProperties.add("nomenclaturalMicroReference");
+ includeProperties.add("basionymAuthorship");
+ includeProperties.add("exBasionymAuthorship");
+ includeProperties.add("combinationAuthorship");
+ includeProperties.add("exCombinationAuthorship");
+ }
+
+ private INameService nameService;
+
+ @Autowired
+ public void setNameService(INameService nameService) {
+ this.nameService = nameService;
+ }
+
+ @Override
+ public void initialize(NoDuplicateNames noDuplicateNames) { }
+
+ @Override
+ public boolean isValid(NonViralName name, ConstraintValidatorContext constraintContext) {
+ if(name == null) {
+ return true;
+ } else {
+ List<TaxonNameBase> matchingNonViralNames = nameService.list(name, includeProperties, null, null, null, null);
+ if(matchingNonViralNames.size() > 0) {
+ if(matchingNonViralNames.size() == 1 && matchingNonViralNames.get(0).equals(name)) {
+ return true;
+ } else {
+ return false;
+ }
+ } else {
+ return true;
+ }
+ }
+ }
+}