Package clips.delegate.directory.complex

Source Code of clips.delegate.directory.complex.DirectoryCabinet

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

package clips.delegate.directory.complex;

import beans.directory.cabinet.DirectoryCabinetBean;
import beans.directory.cabinet.DirectoryCabinetBeanRemote;
import cli_fmw.main.ClipsException;
import beans.directory.cabinet.entity.CabinetDetails;
import cli_fmw.delegate.directory.DirectoryMagic;
import cli_fmw.utils.SelectorEditableExceptional;
import clips.delegate.directory.ro.DirectoryLpuItem;
import framework.beans.directory.DirectoryItemDetails;
import framework.utils.ROList;
import java.util.ArrayList;
import java.util.HashMap;

/**
* справочник типов справок
* @author lacoste
*/
public class DirectoryCabinet extends
        DirectoryMagic<DirectoryCabinetBeanRemote, DirectoryCabinetItem> {
    private HashMap<DirectoryLpuItem, ROList<DirectoryCabinetItem>> map = new HashMap<DirectoryLpuItem, ROList<DirectoryCabinetItem>>();

    public DirectoryCabinet() throws ClipsException {
        super(DirectoryCabinetBean.class.getSimpleName());
    }
   
    @Override
    public String getDirectoryTitle() {
        return "Кабинеты";
    }

    @Override
    protected DirectoryCabinetItem createFromLoadedDetails(DirectoryItemDetails details) {
        CabinetDetails d = (CabinetDetails) details;
        return new DirectoryCabinetItem(d);
    }

    @Override
    protected DirectoryCabinetItem createNullItem() {
        CabinetDetails d = new CabinetDetails();
        d.description = "";
        d.title = "Кабинет не указан";
        return createFromLoadedDetails(d);
    }

    private ArrayList<DirectoryCabinetItem> filterItems(DirectoryLpuItem lpu) throws ClipsException{
        ArrayList<DirectoryCabinetItem> list = new ArrayList<DirectoryCabinetItem>(0);
        if (lpu == null) {
            return list;
        }
        SelectorEditableExceptional<DirectoryCabinetItem> items = getItems();
        for (int i = 0; i < items.size(); i++) {
            DirectoryCabinetItem item = items.get(i);
            if(item.getLpu() != null && item.getLpu().getID() == lpu.getID()){
                list.add(item);
            }
        }
        return list;
    }

    public ROList<DirectoryCabinetItem> getFilteredItems(DirectoryLpuItem lpu) throws ClipsException {
        if (map.get(lpu) == null){
            map.put(lpu, new ROList<DirectoryCabinetItem>(filterItems(lpu)));
        }
        return map.get(lpu);
    }

    @Override
    protected void addToExtraCache(DirectoryCabinetItem item) {
        super.addToExtraCache(item);
        map.clear();
    }

    @Override
    protected void removeFromExtraCache(DirectoryCabinetItem item) {
        super.removeFromExtraCache(item);
        map.clear();
    }


}
TOP

Related Classes of clips.delegate.directory.complex.DirectoryCabinet

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.