Package beans.directory.danger

Source Code of beans.directory.danger.DirectoryDangerBean

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

package beans.directory.danger;


import framework.beans.directory.DirectoryBean;
import beans.directory.danger.entity.Danger;
import beans.directory.danger.entity.DangerDetails;
import beans.directory.danger.entity.DangerService;
import beans.directory.danger.entity.DangerServiceDetails;
import beans.directory.service.entity.Service;
import framework.generic.ClipsServerException;
import framework.generic.EDataIntegrity;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.ejb.Stateful;
import beans.UserRightsSet;
import beans.directory.simple.entities.Speciality;
import framework.security.RightChecker;
import framework.security.UserRight;

/**
* Security - Ok.
* @author axe
*/
@Stateful(mappedName="clips-beans/DirectoryDangerBean")
public class DirectoryDangerBean extends DirectoryBean<Danger, DangerDetails>
        implements DirectoryDangerBeanRemote {

    public DirectoryDangerBean() {
        super(Danger.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(Danger entity, DangerDetails details) throws ClipsServerException {
        Danger danger = entity;
        DangerDetails d = details;
        danger.setTitle(d.title);
        danger.setDirty(details.dirty);
        danger.setFrequency(d.frequency);
        danger.setDescription(d.description);
       
        Danger parent = null;
        if(d.parentItem > 0) {
            parent = findEntity(Danger.class, d.parentItem);
        }
        danger.setReferred(parent);
    }

    @Override
    protected void onRemove(Danger entity) throws ClipsServerException {
        Field f[] = {
            new Field("danger.id", entity.getId()),
        };
        deleteEntityList(DangerService.class, f);
    }

    @Override
    public ArrayList<DangerServiceDetails> getServiceList(int dangerId) throws ClipsServerException {
        if(dangerId == 0) {
            throw new EDataIntegrity("Попытка получить услуги опасного фактора с ID=0");
        }
       
        Iterator list = findEntityList(DangerService.class, "danger.id", dangerId).iterator();
        ArrayList<DangerServiceDetails> res = new ArrayList<DangerServiceDetails>();
        while(list.hasNext()) {
            DangerService ds = (DangerService)list.next();
            res.add(ds.getDetails((RightChecker) this));
        }
       
        return res;
    }

    @Override
    public void removeService(DangerServiceDetails details) throws ClipsServerException {
        checkCommandAccessibility(COMMAND_WRITE);
       
        if(details.dangerId == 0) {
            throw new EDataIntegrity("Попытка удалить услугу опасному фактору с ID=0");
        }
       
        Field f[] = {
            new Field("danger.id", details.dangerId),
            new Field("service.id", details.serviceId),
            new Field("speciality.id", details.specialityID)
        };
        Field fNull[] = {
            new Field("danger.id", details.dangerId),
            new Field("service.id", details.serviceId),
            new Field("speciality", null, Field.OPERATOR_IS_NULL)
        };
        List list;
        if (details.specialityID == 0) {
            list = findEntityList(DangerService.class, fNull);
        } else {
            list = findEntityList(DangerService.class, f);
        }
        DangerService dangerService = (DangerService) list.get(0);
        manager.remove(dangerService);
    }
   
    @Override
    public int addService(DangerServiceDetails details) throws ClipsServerException{
        checkCommandAccessibility(COMMAND_WRITE);
       
        if(details.dangerId == 0) {
            throw new EDataIntegrity("Попытка назначить услуги опасному фактору с ID=0");
        }
       
        DangerService dangerService = null;
        Field f[] = {
            new Field("danger.id", details.dangerId),
            new Field("service.id", details.serviceId),
            new Field("speciality.id", details.specialityID)
        };
        Field fNull[] = {
            new Field("danger.id", details.dangerId),
            new Field("service.id", details.serviceId),
            new Field("speciality", null, Field.OPERATOR_IS_NULL)
        };
        List list;
        if (details.specialityID == 0) {
            list = findEntityList(DangerService.class, fNull);
        } else {
            list = findEntityList(DangerService.class, f);
        }
        if (!list.isEmpty()){
            dangerService = (DangerService) list.get(0);//Должна быть одна и ниибёт
            dangerService.setDescription(details.description);
            Speciality spec = null;
            if (details.specialityID != 0) {
                spec = findEntity(Speciality.class, details.specialityID);
            }
            dangerService.setSpeciality(spec);
        }
        else {
            dangerService = new DangerService();
            dangerService.setDescription(details.description);
            dangerService.setDanger(findEntity(Danger.class, details.dangerId));
            dangerService.setService(findEntity(Service.class, details.serviceId));
            Speciality spec = null;
            if (details.specialityID != 0) {
                spec = findEntity(Speciality.class, details.specialityID);
            }
            dangerService.setSpeciality(spec);
        }

        return saveEntity(dangerService);

    }
}
TOP

Related Classes of beans.directory.danger.DirectoryDangerBean

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.