/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package clips.delegate.directory.complex;
import cli_fmw.delegate.directory.DirectoryItemRO;
import cli_fmw.delegate.directory.complex.*;
import beans.directory.packet.entity.PacketTemplateDetails;
import cli_fmw.delegate.directory.DirectoryItem;
import cli_fmw.delegate.directory.simple.DirectorySimpleItem;
import cli_fmw.main.ClipsException;
import clips.delegate.directory.ro.DirectoryLpu;
import clips.delegate.directory.ro.DirectoryLpuItem;
import clips.delegate.directory.simple.medexam.DirectoryMedexamType;
import clips.delegate.directory.simple.medexam.DirectoryMedexamTypeItem;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author lacoste
*/
public class DirectoryPacketTemplateItem
extends DirectoryItem<PacketTemplateDetails> {
protected List<DirectoryPacketTemplateListItem> packetItems
= new ArrayList<DirectoryPacketTemplateListItem>();
public DirectoryPacketTemplateItem(PacketTemplateDetails details) {
super(details);
}
public int getPacketItemCount() throws ClipsException {
//preload packet items
DirectoryLocator.getDirectory(DirectoryPacketTemplateList.class, false);
return packetItems.size();
}
public DirectoryPacketTemplateListItem getPacketItem(int i) {
DirectoryPacketTemplateListItem pi = packetItems.get(i);
return pi;
}
void addPacketItem(DirectoryPacketTemplateListItem packetItem) throws ClipsException {
if(!packetItems.contains(packetItem)) {
packetItems.add(packetItem);
}
}
void removePacketItem(DirectoryPacketTemplateListItem packetItem) {
packetItems.remove(packetItem);
}
public DirectorySimpleItem getmedexamType() throws ClipsException {
DirectoryMedexamType directory = DirectoryLocator.getDirectory(DirectoryMedexamType.class);
return directory.getItemFromID(getDetails().medexamTypeID);
}
public void setmedexamType(DirectoryMedexamTypeItem type) throws ClipsException {
if(isInDirectory()) {
PacketTemplateDetails newDetails = getDetailsCopy();
newDetails.medexamTypeID = type.getID();
saveDetails(newDetails);
} else {
getDetails().medexamTypeID = type.getID();
}
}
@Override
public int compareTo(DirectoryItemRO item) {
DirectoryPacketTemplateItem other = (DirectoryPacketTemplateItem) item;
if (getID() == 0) {
return -1;
} else {
try {
Integer thisTypeID = this.getmedexamType().getID();
Integer otherTypeID = other.getmedexamType().getID();
if (thisTypeID == otherTypeID) {
return super.compareTo(item);
} else {
return thisTypeID.compareTo(otherTypeID);
}
} catch (ClipsException ex) {
return super.compareTo(item);
}
}
}
DirectoryLpuItem getLpu() throws ClipsException{
if (getDetails().lpuID == 0){
return null;
}else{
return DirectoryLocator.getDirectory(DirectoryLpu.class).getItemFromID(getDetails().lpuID);
}
}
}