Package beans.directory.certificate

Source Code of beans.directory.certificate.DirectoryCertificateTypeBean

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package beans.directory.certificate;

import beans.directory.certificate.entity.CertificateTypeDetails;
import framework.beans.directory.DirectoryBean;
import beans.directory.certificate.entity.CertificateType;
import beans.doctor.certificate.Certificate;
import framework.beans.report.ReportDefinition;
import framework.generic.ClipsServerException;
import framework.generic.EDataIntegrity;
import framework.generic.EMoveToTrash;
import javax.ejb.Stateful;
import beans.UserRightsSet;
import framework.security.UserRight;

/**
* @security Ok.
* @author axe
* Типы справок
*/
@Stateful(mappedName="clips-beans/DirectoryCertificateTypeBean")
public class DirectoryCertificateTypeBean extends DirectoryBean<CertificateType, CertificateTypeDetails>
        implements DirectoryCertificateTypeBeanRemote {
   
    public DirectoryCertificateTypeBean() {
        super(CertificateType.class, "тип справки");
    }

    @Override
    protected UserRight getRightForCreateDirectoryItem() {
        return UserRightsSet.WRITE_REGION_ADMIN_DIRECTORY;
    }

    @Override
    protected UserRight getRightForWriteToDirectory() {
        return UserRightsSet.WRITE_REGION_ADMIN_DIRECTORY;
    }


    @Override
    protected void set(CertificateType certificateType, CertificateTypeDetails d) throws ClipsServerException {
        certificateType.setTitle(d.title);
        //certificateType.setDirty(details.dirty);
        certificateType.setReportDefinition(findEntity(ReportDefinition.class, d.reportDefinitionID));
        certificateType.setTrash(d.hidden);
    }

    /**
     * Проверка данных при удалении типа справки
     * Справок данного типа в базе быть не должно
     * @param details детали новой сущности
     * @throws generic.ClipsServerException есть справки данного типа в базе
     */   
    @Override
    protected void onRemove(CertificateType entity) throws ClipsServerException {
        Field f[] = { new Field("type", entity) };
        if(getEntityCount(Certificate.class, f) > 0) {
            throw new EMoveToTrash("В базе есть справки данного типа, удаление невозможно");
        }
    }
   
    /**
     * Проверка данных при создании нового типа справки
     * Данные не должны быть пустыми
     * @param details детали новой сущности
     * @throws generic.ClipsServerException
     */
    @Override
    protected void onAppend(CertificateTypeDetails details) throws ClipsServerException {
        check(details);
    }

    /**
     * Проверка данных при редактировании справки
     * Данные не должны быть пустыми
     * @param entity сущность типа
     * @param details новые детали сущности
     * @throws generic.ClipsServerException
     */
    @Override
    protected void onUpdate(CertificateType entity, CertificateTypeDetails details) throws ClipsServerException {
        check(details);
    }
   

    /**
     * проверка полей на валидность
     * @param details
     * @throws generic.ClipsServerException
     */
    private void check(CertificateTypeDetails d) throws ClipsServerException {
        if (d.reportDefinitionID == 0) {
            throw new EDataIntegrity("Не задан отчет, которым будет распечатываться справка");
        }
    }   
}
TOP

Related Classes of beans.directory.certificate.DirectoryCertificateTypeBean

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.