Package beans.directory.vidal.farm

Source Code of beans.directory.vidal.farm.DirectoryVidalFarmBean

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

package beans.directory.vidal.farm;

import beans.directory.vidal.entities.farm.ClassificationFarmDetails;
import framework.beans.directory.DirectoryBean;
import beans.directory.vidal.entities.farm.ClassificationFarm;
import beans.directory.vidal.entities.farm.VidalFarm;
import beans.directory.vidal.entities.farm.VidalFarmPK;
import framework.generic.ClipsServerException;
import framework.generic.EDataIntegrity;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import javax.ejb.Stateful;
import beans.UserRightsSet;
import framework.security.UserRight;

/**
* Security - Ok.
* @author petr
*/
@Stateful(mappedName="clips-beans/DirectoryVidalFarmBean")
public class DirectoryVidalFarmBean extends DirectoryBean<ClassificationFarm, ClassificationFarmDetails> implements DirectoryVidalFarmBeanRemote {

    public DirectoryVidalFarmBean() {
        super(ClassificationFarm.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(ClassificationFarm atc, ClassificationFarmDetails item) throws ClipsServerException {
        ClassificationFarm farmParent = item.parentItem == 0? null: findEntity(ClassificationFarm.class, item.parentItem);
        atc.setTitle(item.title);
        //atc.setDirty(details.dirty);
        if (farmParent != null){
            atc.setParentFarm(farmParent);           
        }
    }

    @Override
    protected void onRemove(ClassificationFarm entity) throws ClipsServerException {
        Field f[] = { new Field("farm", entity) };
       
        if(getEntityCount(VidalFarm.class, f, "") > 0) {
            throw new EDataIntegrity("Данному классификатору соотвествует "
                    + "несколько элементов классификатора VIDAL, удаление невозможно");
        }
    }

    @Override
    public Set<Integer> getVidals(int farm) throws ClipsServerException {
        if(farm == 0) {
            throw new EDataIntegrity("");
        }
       
        Iterator<VidalFarm> list = findEntityList(VidalFarm.class, "key.farm", farm).iterator();
        Set<Integer> res = new HashSet<Integer>();
        while(list.hasNext()) {
            VidalFarm vidal = (VidalFarm)list.next();
            res.add(vidal.getKey().getVidal());
        }
       
        return res;
    }

    @Override
    public void setVidals(int farm, Set<Integer> vidals) throws ClipsServerException {
        checkCommandAccessibility(COMMAND_WRITE);
        Set<Integer> backup = new HashSet<Integer>(vidals);
        Set<Integer> oldVidals = getVidals(farm);
       
        vidals.removeAll(oldVidals);
       
        oldVidals.removeAll(backup);
       
        if(oldVidals.size() > 0) {
            @SuppressWarnings("unchecked")

            Field f[] = {
                new Field("key.farm", farm),
                new Field("key.vidal", oldVidals, Field.OPERATOR_IN)
            };
            deleteEntityList(VidalFarm.class, f);
        }

        Iterator<Integer> addNew = vidals.iterator();
        while(addNew.hasNext()) {
            VidalFarm r = new VidalFarm();
            r.setKey(new VidalFarmPK(farm, addNew.next()));
            System.out.println("Added new:" + r);
            manager.persist(r);
        }
    }

}
TOP

Related Classes of beans.directory.vidal.farm.DirectoryVidalFarmBean

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.