Package cli_fmw.delegate.directory.complex

Source Code of cli_fmw.delegate.directory.complex.DirectoryKladr

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package cli_fmw.delegate.directory.complex;

import cli_fmw.delegate.directory.DirectoryRecursiveLazy;
import cli_fmw.main.ClipsException;
import cli_fmw.main.DirectoryItemNotFoundException;
import framework.beans.address.DirectoryKladrBean;
import framework.beans.address.DirectoryKladrBeanRemote;
import framework.beans.address.KladrCode;
import framework.beans.address.KladrItem;
import framework.beans.address.entities.AddressObject;
import framework.beans.directory.DirectoryItemDetails;
import framework.beans.address.entities.AddressObjectDetails;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
*
* @author petr
*/
public class DirectoryKladr
        extends DirectoryRecursiveLazy<DirectoryKladrBeanRemote, DirectoryKladrItem>{

    public DirectoryKladr() throws ClipsException {
        super(DirectoryKladrBean.class.getSimpleName());
    }

    @Override
    public String getDirectoryTitle() {
        return "КЛАДР";
    }

    @Override
    protected DirectoryKladrItem createFromLoadedDetails(DirectoryItemDetails details) {
        AddressObjectDetails d =  (AddressObjectDetails) details;
        return new DirectoryKladrItem(d, this);
    }

//    @Override
//    protected DirectoryKladrItem createNullItem() {
//        AddressObjectDetails d = new AddressObjectDetails();
//        d.title = "";
//        return createFromLoadedDetails(d);
//    }

    public void syncDirectory(List<KladrItem> roots, Map<KladrCode,KladrCode> altnames) throws ClipsException{
        System.out.println("DIRECTORYKLADR: синхронизация данных справочника адресов");
        try {
            getBean().get().syncDirectory(roots, altnames);
        } catch (Exception ex) {
            clearBean();
            throw new ClipsException("Ошибка при обновлении классификатора адресов", ex);
        }
    }

    @Override
    protected DirectoryKladrItem createNullItem() {
        AddressObjectDetails details = new AddressObjectDetails();
        details.title = "неизвестно";
        details.kladrCode = "";
        details.hidden = true;
        DirectoryKladrItem item = new DirectoryKladrItem(details, this);
        return item;
    }

    public DirectoryKladrItem getRussia() throws DirectoryItemNotFoundException{
        return getItemFromID(AddressObject.ADDRESS_OBJECT_RUSSIA);
    }

    public DirectoryKladrItem getItemByCode(String code) throws ClipsException {
        try {
            int id = getBean().get().getItemIDByCode(code);
            return getItemFromID(id);
        } catch (Exception ex) {
            clearBean();
            throw new ClipsException("Не удалось получить элемент КЛАДРа (" + code + ")", ex);
        }
    }

    public ArrayList<DirectoryKladrItem> getAddress(String str) throws ClipsException{
        int[] is = getBean().get().findAddressObject(str, ", ");
        ArrayList<DirectoryKladrItem> res = new ArrayList<DirectoryKladrItem>();
        for (int id : is) {
            res.add(this.getItemFromID(id));
        }
        return res;
    }

}

TOP

Related Classes of cli_fmw.delegate.directory.complex.DirectoryKladr

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.