org.dspace.app.webui.cris.validator.ResearcherPageValidator.java Source code

Java tutorial

Introduction

Here is the source code for org.dspace.app.webui.cris.validator.ResearcherPageValidator.java

Source

/**
 * The contents of this file are subject to the license and copyright
 * detailed in the LICENSE and NOTICE files at the root of the source
 * tree and available online at
 *
 * https://github.com/CILEA/dspace-cris/wiki/License
 */
package org.dspace.app.webui.cris.validator;

import org.dspace.app.cris.model.ResearcherPage;
import org.dspace.app.cris.service.ApplicationService;
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;

public class ResearcherPageValidator implements Validator {

    private Class clazz;

    private ApplicationService applicationService;

    public boolean supports(Class arg0) {
        return clazz.isAssignableFrom(arg0);
    }

    public void validate(Object arg0, Errors arg1) {
        ResearcherPage researcher = (ResearcherPage) arg0;

        ValidationUtils.rejectIfEmptyOrWhitespace(arg1, "staffNo", "error.staffNo.mandatory",
                "StaffNo is mandatory");
        ValidationUtils.rejectIfEmptyOrWhitespace(arg1, "fullName", "error.fullName.mandatory",
                "FullName is mandatory");

        String staffNo = researcher.getSourceID();
        if (staffNo != null) {
            ResearcherPage temp = applicationService.getResearcherPageByStaffNo(staffNo);
            if (temp != null) {
                if (!researcher.getId().equals(temp.getId())) {
                    arg1.reject("staffNo", "Staff No is already in use by another researcher");
                }
            }
        }
    }

    public void setClazz(Class clazz) {
        this.clazz = clazz;
    }

    public void setApplicationService(ApplicationService applicationService) {
        this.applicationService = applicationService;
    }

}