Package cli_fmw.delegate.client

Source Code of cli_fmw.delegate.client.ClientLocalAbstract$AddressInfo

/*
* ClientLocal.java
*
* Created on 28 Ноябрь 2007 г., 10:51
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package cli_fmw.delegate.client;

import cli_fmw.delegate.AuditListener;
import cli_fmw.delegate.cache.ExtraDataManager;
import cli_fmw.delegate.DelegateLine2;
import cli_fmw.delegate.cache.DelegateExtraData;
import cli_fmw.delegate.directory.complex.DirectoryLocator;
import cli_fmw.delegate.directory.simple.name.DirectoryNameAbstract;
import cli_fmw.delegate.directory.simple.name.DirectoryNameItemAbstract;
import cli_fmw.delegate.directory.simple.pathron.DirectoryPathronAbstract;
import cli_fmw.delegate.directory.simple.pathron.DirectoryPathronItemAbstract;
import cli_fmw.delegate.directory.simple.sex.DirectorySexAbstract;
import cli_fmw.delegate.directory.simple.sex.DirectorySexItemAbstract;
import cli_fmw.delegate.directory.simple.surname.DirectorySurnameAbstract;
import cli_fmw.delegate.directory.simple.surname.DirectorySurnameItemAbstract;
import cli_fmw.main.ClipsException;
import cli_fmw.main.DirectoryItemReplacedException;
import framework.beans.client.ClientBeanRemoteAbstract;
import framework.beans.address.entities.AddressDetails;
import framework.beans.client.ClientDetailsAbstract;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
* Делегат - клиент (персона) включая его адрес
* @author Администратор
*/
public abstract class ClientLocalAbstract
        <BEANINTERFACE extends ClientBeanRemoteAbstract,
        CLIENTDETAILS extends ClientDetailsAbstract,
        SURNAME extends DirectorySurnameItemAbstract,
        NAME extends DirectoryNameItemAbstract,
        PATHRON extends DirectoryPathronItemAbstract,
        SEX extends DirectorySexItemAbstract>
        extends DelegateLine2<BEANINTERFACE, CLIENTDETAILS>{

    //кеш адреса
    protected AddressInfo addressInfo  = new AddressInfo(getEDM());

   

    /**
     * Кеш адреса
     */
    protected class AddressInfo extends DelegateExtraData<AddressDetails> {

        public AddressInfo(ExtraDataManager contaner) {
            super(contaner);
        }
   
        @Override
        protected AddressDetails init() throws Exception {
            return getBean().getAddress();
        }

        @Override
        protected void saveDB() throws Exception {
            auditDetailsList.addAll(getBean().setAddress(get()).getAudit());
            fireAuditEvent();
        }

        @Override
        protected AddressDetails initNew() {
            return new AddressDetails();
        }
    }

    /**
     * Дефолтовый конструктор для создания новых клиентов.
     * Инициализируются детали и кеши
     */
    public ClientLocalAbstract(AuditListener al) throws ClipsException {
        super(al);
    }

    /**
     * Конструктор для инициализации по идентификтатору.
     * Загрузка деталей отложенная.
     * @param id идентифкатор клиента
     */
    public ClientLocalAbstract(int id, AuditListener al) throws ClipsException {
        super(id, al);
    }

    /**
     * @param details детали клиента
     */
    public ClientLocalAbstract(CLIENTDETAILS details, AuditListener al) throws ClipsException {
        super(details, al);
    }

    /**
     * Возвращает ФИО клиента
     * @return фио в формате Иванов И.И.
     */
    public String getFIO() {
        try {
            String name = getName().toString();
            String surname = getSurname().toString();
            String pathron = getPathron().toString();
            String fio = String.format("%s %s.%s.", surname, name.length() > 1 ? name.substring(0, 1) : name, pathron.length() > 1 ? pathron.substring(0, 1) : pathron);
            return fio;
        } catch (ClipsException ex) {
            ex.printStackTrace();
            return "Не найдено в справочнике";
        }
    }

    @SuppressWarnings({"unchecked", "unchecked"})
    public SURNAME getSurname() throws ClipsException {
        DirectorySurnameAbstract surnameList = DirectoryLocator.getDirectory(DirectorySurnameAbstract.class, false);
        try {
            return (SURNAME) surnameList.getItemFromID(getDetails().surnameId);
        } catch (DirectoryItemReplacedException ex) {
            reload();
            return (SURNAME) surnameList.getItemFromID(getDetails().surnameId);
        }
    }

    public void setSurname(SURNAME surname) throws ClipsException {
        getDetails().surnameId = surname.getID();
        fireContentStateEvent();
    }

    public NAME getName() throws ClipsException {
        DirectoryNameAbstract list = DirectoryLocator.getDirectory(DirectoryNameAbstract.class, false);
        try {
            return (NAME) list.getItemFromID(getDetails().nameId);
        } catch (DirectoryItemReplacedException ex) {
            reload();
            return (NAME) list.getItemFromID(getDetails().nameId);
        }
    }

    public void setName(NAME name) throws ClipsException {
        getDetails().nameId = name.getID();
        fireContentStateEvent();
    }

    public PATHRON getPathron() throws ClipsException {
        DirectoryPathronAbstract list = DirectoryLocator.getDirectory(DirectoryPathronAbstract.class, false);
        try {
            return (PATHRON) list.getItemFromID(getDetails().pathronId);
        } catch (DirectoryItemReplacedException ex) {
            reload();
            return (PATHRON) list.getItemFromID(getDetails().pathronId);
        }
    }

    public void setPathron(PATHRON pathron) throws ClipsException {
        getDetails().pathronId = pathron.getID();
        fireContentStateEvent();
    }

    public SEX getSex() throws ClipsException {
        DirectorySexAbstract list = DirectoryLocator.getDirectory(DirectorySexAbstract.class, false);
        return (SEX) list.getItemFromID(getDetails().sexId);
    }

    public void setSex(SEX sex) throws ClipsException {
        getDetails().sexId = sex.getID();
        fireContentStateEvent();
    }

    public Date getBorn() throws ClipsException {
        return getDetails().born;
    }

    public void setBorn(Date born) throws ClipsException {
        getDetails().born = born;
        fireContentStateEvent();
    }

    public String BornToString() throws ClipsException {
        SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy");
        if (getDetails().born == null) {
            return "";
        } else {
            return formatter.format(getDetails().born);
        }
    }

    public String getRemarks() throws ClipsException {
        return getDetails().remarks;
    }

    public void setRemarks(String remarks) throws ClipsException {
        if (remarks == null || remarks.trim().equals("")) {
            getDetails().remarks = null;
        } else {
            getDetails().remarks = remarks;
        }
        fireContentStateEvent();
    }

    public String getEmail() throws ClipsException {
        return getDetails().email;
    }

    public void setEmail(String email) throws ClipsException {
        if (email == null || email.trim().equals("")) {
            getDetails().email = null;
        } else {
            getDetails().email = email;
        }
        fireContentStateEvent();
    }

    public String getTelephones() throws ClipsException {
        return getDetails().telephones;
    }

    public void setTelephones(String telephones) throws ClipsException {
        if (telephones == null || telephones.trim().equals("")) {
            getDetails().telephones = null;
        } else {
            getDetails().telephones = telephones;
        }
        fireContentStateEvent();
    }
   
    public String getSnils() throws ClipsException {
        return getDetails().snils;
    }

    public void setSnils(String snils) throws ClipsException {
        if (snils == null || snils.trim().equals("")) {
            getDetails().snils = null;
        } else {
            getDetails().snils = snils;
        }
        fireContentStateEvent();
    }

    public String getInn() throws ClipsException {
        return getDetails().inn;
    }

    public void setInn(String inn) throws ClipsException {
        getDetails().inn = inn;
        fireContentStateEvent();
    }

    /**
     * Выдает Фамилию Имя Отчество
     * @return
     */
    @Override
    public String toString() {
        try {
            return getSurname() + " " + getName() + " " + getPathron();
        } catch (ClipsException ex) {
            ex.printStackTrace();
            return "Не найдено в справочнике";
        }
    }

    /**
     * @return Address != null
     * @throws cli_fmw.main.ClipsException
     */
    public Address getAddress() throws ClipsException {
        return new Address(addressInfo.get().clone());
    }

    public void setAddress(Address addr) throws ClipsException {
        addressInfo.set(addr.getDetails().clone());
        fireContentStateEvent();
    }
}
TOP

Related Classes of cli_fmw.delegate.client.ClientLocalAbstract$AddressInfo

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.