Project

General

Profile

Download (1.43 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.cdm.validation.constraint;
2

    
3
import javax.validation.ConstraintValidator;
4
import javax.validation.ConstraintValidatorContext;
5

    
6
import eu.etaxonomy.cdm.model.common.CdmBase;
7
import eu.etaxonomy.cdm.model.name.NameTypeDesignation;
8
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
9
import eu.etaxonomy.cdm.model.name.TypeDesignationBase;
10
import eu.etaxonomy.cdm.validation.annotation.ValidTypeDesignation;
11

    
12
public class TypeDesignationValidator implements ConstraintValidator<ValidTypeDesignation, TypeDesignationBase<?>>{
13

    
14
    @Override
15
    public void initialize(ValidTypeDesignation constraintAnnotation) {}
16

    
17
	@Override
18
    public boolean isValid(TypeDesignationBase<?> value, ConstraintValidatorContext constraintValidatorContext) {
19
		boolean isValid = true;
20

    
21
		if (value.getTypifiedNames().isEmpty()){
22
		    return false;
23
		}
24
		if (value.isNotDesignated()){
25
		    return true;
26
		} else if (value.isInstanceOf(SpecimenTypeDesignation.class)){
27
		    SpecimenTypeDesignation specDesig = CdmBase.deproxy(value, SpecimenTypeDesignation.class);
28
		    if (specDesig.getTypeSpecimen() == null){
29
		        return false;
30
		    }
31
		}else if (value.isInstanceOf(NameTypeDesignation.class)){
32
		    NameTypeDesignation nameDesig = CdmBase.deproxy(value, NameTypeDesignation.class);
33
            if (nameDesig.getTypeName() == null){
34
                return false;
35
            }
36
        }
37

    
38
		return isValid;
39
	}
40
}
(16-16/17)