/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package beans.directory.vidal.matter;
import beans.directory.vidal.entities.Vidal;
import framework.beans.directory.DirectoryBean;
import framework.beans.directory.DirectoryItemDetails;
import beans.directory.vidal.entities.matter.Matter;
import beans.doctor.contraindication.Contraindication;
import framework.generic.ClipsServerException;
import javax.ejb.Stateful;
import beans.UserRightsSet;
import framework.security.UserRight;
/**
* @security ok.
* @author axe
*/
@Stateful(mappedName="clips-beans/DirectoryMatterBean")
public class DirectoryMatterBean extends DirectoryBean<Matter, DirectoryItemDetails>
implements DirectoryMatterBeanRemote {
public DirectoryMatterBean() {
super(Matter.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(Matter matter, DirectoryItemDetails item) throws ClipsServerException {
matter.setTitle(item.title);
matter.setDirty(item.dirty);
matter.setTrash(item.hidden);
}
@Override
protected void onRemove(Matter matter) throws ClipsServerException {
int size = findEntityList(Vidal.class, "key.matter", matter.getId()).size();
if (size > 0) {
throw new ClipsServerException("Действующее вещество не может быть удалено,\n" +
"т.к. имеются лекарства содержащие его");
}
if (getEntityCount(Contraindication.class, new Field[]{new Field("matter", matter)}) > 0) {
throw new ClipsServerException("Действующее вещество не может быть удалено,\n" +
"т.к. против него имеются противопоказания");
}
}
}