com.webbfontaine.valuewebb.action.irms.PermissionValidator.java Source code

Java tutorial

Introduction

Here is the source code for com.webbfontaine.valuewebb.action.irms.PermissionValidator.java

Source

package com.webbfontaine.valuewebb.action.irms;

import com.webbfontaine.valuewebb.model.irms.Permission;
import com.webbfontaine.valuewebb.model.util.Utils;
import com.webbfontaine.valuewebb.validation.ErrorHandling;
import org.apache.commons.lang3.StringUtils;

import javax.faces.application.FacesMessage;

/**
 * Copyrights 2002-2014 Webb Fontaine
 * This software is the proprietary information of Webb Fontaine.
 * Its use is subject to License terms.
 * Developer: nigiyan
 * Date: 30/05/2014
 */

public class PermissionValidator {
    private Permission permission;

    public PermissionValidator() {
    }

    public PermissionValidator(Permission permission) {
        this.permission = permission;
    }

    public void setPermission(Permission permission) {
        this.permission = permission;
    }

    public boolean isCriterionExist() {
        String criterionCode = permission.getCriterionCode();
        return !Utils.getEntityManager()
                .createQuery("SELECT criterion FROM Criteria criterion where criterion.code = :code")
                .setParameter("code", criterionCode).getResultList().isEmpty();
    }

    public boolean isNew() {
        return Utils.getEntityManager().createQuery(
                "SELECT p FROM Permission p where p.userName = :userName and p.criterionCode = :criterionCode")
                .setParameter("userName", permission.getUserName())
                .setParameter("criterionCode", permission.getCriterionCode()).getResultList().isEmpty();
    }

    public boolean isPrivilegesDefined() {
        return permission.getCreateCriterion() || permission.getViewCriterion() || permission.getViewHit();//) {
    }

    public boolean checkMandatoryFields() {
        return StringUtils.trimToNull(permission.getCriterionCode()) != null
                && StringUtils.trimToNull(permission.getUserName()) != null;
    }

    public boolean validate() {
        boolean isValid = false;
        if (checkMandatoryFields()) {
            if (isPrivilegesDefined()) {
                if (isCriterionExist()) {
                    if (isNew()) {
                        isValid = true;
                    } else {
                        ErrorHandling.addFacesMessageError(null, "Permission already defined: " + permission);
                    }
                } else {
                    ErrorHandling.addFacesMessage("criterionCode",
                            "No such criteria: " + permission.getCriterionCode(), FacesMessage.SEVERITY_ERROR);
                }
            } else {
                ErrorHandling.addFacesMessageError(null, "Please define permissions.");
            }
        } else {
            ErrorHandling.addFacesMessageError(null, "Mandatory field missed"); //should not happen, see xhtml
        }
        return isValid;
    }
}