Package clips.delegate.directory.filtered

Source Code of clips.delegate.directory.filtered.DirectoryService$FilteredByGroup

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

package clips.delegate.directory.filtered;

import beans.directory.service.DirectoryServiceBeanRemote;
import beans.directory.service.entity.ServiceDetails;
import beans.directory.service.DirectoryServiceBean;
import beans.directory.service.entity.ServiceToServiceDetails;
import cli_fmw.delegate.directory.AccessDeniable;
import cli_fmw.delegate.directory.DirectoryMagic;
import cli_fmw.delegate.directory.FilteredDirectory;
import clips.delegate.directory.complex.DirectoryServicesGroupItem;
import cli_fmw.main.AccessException;
import cli_fmw.utils.Selector;
import cli_fmw.main.ClipsException;
import cli_fmw.main.DirectoryItemNotFoundException;
import cli_fmw.utils.SelectorEditableExceptional;
import framework.beans.directory.DirectoryItemDetails;
import framework.generic.ClipsServerException;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.poi.util.List2d;


/**
*
* @author Axe Ilshat
*/
public class DirectoryService
    extends DirectoryMagic<DirectoryServiceBeanRemote, DirectoryServiceItem> 
    implements FilteredDirectory<DirectoryServiceItem, DirectoryServicesGroupItem>,
               AccessDeniable<DirectoryServiceItem> {

  private DirectoryServiceItem      dsi = null;
 
    public DirectoryService() throws ClipsException {
        super(DirectoryServiceBean.class.getSimpleName());
        //load();
    }
   
    @Override
    public String getDirectoryTitle() {
        return "Услуги";
    }
   
    @Override
    protected DirectoryServiceItem createFromLoadedDetails(DirectoryItemDetails details) {
        ServiceDetails d = (ServiceDetails) details;
        return new DirectoryServiceItem(d);
    }
   
    @Override
    protected DirectoryServiceItem createNullItem() {
        ServiceDetails d = new ServiceDetails();
        d.title = "Нет услуги";
        return createFromLoadedDetails(d);
    }      
   
    @Override
    @Deprecated
    protected void loadExtra(DirectoryServiceItem item) throws  ClipsException {
        /*DirectoryServiceBeanRemote dsb = getBean().get();
        DirectoryServiceItem service = item;
        DirectoryCheckupType checkupTypesDirectory = (DirectoryCheckupType)
                DirectoryLocator.getDirectory(DirectoryCheckupType.class, false);
        List<Integer> types;
        try {
            types = dsb.getCheckupTypes(item.getID());
        } catch (Exception ex) {
            clearBean();
            throw new ClipsException("Не удалось получить типы анализов для данной услуги", ex);
        }
        for(Integer id : types) {
            DirectoryCheckupTypeItem cti = checkupTypesDirectory.getItemFromID(id);
            service.addLoaded(cti);
        }
        */
    }

    /**
     * Возвращает услуги принадлежащие указанной группе
     * @param group
     * @return
     * @throws generic.ClipsException
     */
    @Override
    public Selector<DirectoryServiceItem> getFilteredItems(DirectoryServicesGroupItem group) throws ClipsException {
        return new FilteredByGroup( group);
    }

    List<ServiceToServiceDetails> getChildServiceList(int pserviceId) throws ClipsException {
        try {
            return getBean().get().getChildServiceList(pserviceId);
        } catch (Exception ex) {
            getBean().clear();
            throw new ClipsException("Не удалось загрузить список связанных услуг", ex);
        }
    }

    void removeChildService(ServiceToServiceDetails details, int pserviceId) throws ClipsException {
        try {
            getBean().get().removeChildService(details, pserviceId);
        } catch (Exception ex) {
            getBean().clear();
            throw new ClipsException("Не удалось удалить связанную услугу", ex);
        }
    }

    void addChildService(ServiceToServiceDetails details, int pserviceId) throws ClipsException {
        try {
            getBean().get().addChildService(details, pserviceId);
        } catch (Exception ex) {
            getBean().clear();
            throw new ClipsException("Не удалось добавить связанную услугу", ex);
        }
    }

    Set<Integer> getActions(int iD) throws ClipsException {
        try {
            return getBean().get().getActions(iD);
        } catch (Exception ex) {
            throw new ClipsException("Не удалось загрузить действия врача", ex);
        }
    }

    void setActions(int iD, Set<Integer> vs) throws ClipsException {
        try {
            getBean().get().setActions(iD, vs);
        } catch (Exception ex) {
            throw new ClipsException("Не удалось сохранить действия врача", ex);
        }
    }
   
    private class FilteredByGroup implements Selector<DirectoryServiceItem> {
        List<DirectoryServiceItem> itemsByGroup = new ArrayList<DirectoryServiceItem>();
       
        public FilteredByGroup(DirectoryServicesGroupItem group) throws ClipsException {
            SelectorEditableExceptional it = getItems();
            for (int i = 0; i < it.size(); i++) {
                DirectoryServiceItem item = (DirectoryServiceItem) it.get(i);
                //pass nullable element
                if(item.getID() == 0) {
                    continue;
                }
                if(item.getGroup() == group) {
                    itemsByGroup.add(item);
                }
            }
        }
        @Override
        public int size() {
            return itemsByGroup.size();
        }

        @Override
        public DirectoryServiceItem get(int index) {
            return itemsByGroup.get(index);
        }
    }
   
    @Override
    public DirectoryServiceItem getNotAccessItem() throws DirectoryItemNotFoundException {
     //   try {
      if (dsi == null){
        ServiceDetails serviceDetails = new ServiceDetails();
        serviceDetails.title = AccessException.E_TEXT;
        dsi = new DirectoryServiceItem(serviceDetails);
      }
      return dsi;
     /*   }
    catch (ClipsException ex) {
            throw new DirectoryItemNotFoundException("Не удалось инициализировать элемент запрещённого доступа");
        }*/
    }
   
   
}
TOP

Related Classes of clips.delegate.directory.filtered.DirectoryService$FilteredByGroup

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.