Дерево страниц
Skip to end of metadata
Go to start of metadata

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

Версия 1 Следующий »

Интерфейс представляет собой краткую информацию (дайджест) об участнике документооборота. Объекты данного интерфейса выбираются в качестве субъектов ДО в прикладных документах.
Исторически сложилось, что такие объекты называют "бородами" (beard), или "процентными именами".

import

importClass(Packages.ru.intertrust.cmj.af.so.SOBeard)

extends

AFObject

properties

name

return value

description

methods

name

return value

description

class <>

properties

name

return value

description


     * Перечисление возможных типов бороды.
     * @author Gleb Nozdrachev
     * 
     * @see SOBeard.DocflowData#getType()
     */
    enum Type implements Serializable {

        /**
         * Сотрудник системной организации
         */
        SYS_HUMAN,

        /**
         * РВЗ системной организации
         */
        SYS_HUMAN_HEAD,

        /**
         * Структурное подразделение системной организации
         */
        SYS_DEPARTMENT,

        /**
         * Cистемная организация
         */
        SYS_ORGANIZATION,

        /**
         * Cистемная роль
         */
        SYS_ROLE,

        /**
         * Сотрудник несистемной организации
         */
        NONSYS_HUMAN,

        /**
         * Несистемная организация
         */
        NONSYS_ORGANIZATION,

        /**
         * Частное лицо
         */
        PRIVATE_HUMAN,

        /**
         * Контекстная роль
         */
        CONTEXT_ROLE,

        /**
         * Субъект СО, отсутствующий в справочнике в "явном" виде. Объекты такого типа создаются автоматически -
         * при обработке прикладных документов.
         */
        ABSENT,

        /**
         * Реляция
         */
        SYS_RELATION

    }

    /**
     * Возвращает название организации бороды.
     * @return не может быть <code>null</code>
     */
    String getOrganizationName ();

    /**
     * Возвращает UNID доменного объекта-Организации для данной бороды.
     * Для "Системной организации", т.е. если <code>{@link SOBeard.Type} == {@link SOBeard.Type#SYS_ORGANIZATION}</code>,
     * поиск идёт по СпО текущей организации в пустом комплекте.
     * @return null для "частного лица", т.е. если <code>{@link SOBeard.Type} == {@link SOBeard.Type#PRIVATE_HUMAN}</code>
     * 
     * @see SOOrganizationDescription
     */
    String getOrganizationUNID ();

    /**
     * Возвращает доменный объект-Организацию для данной бороды.
     * Для "Системной организации", т.е. если <code>{@link SOBeard.Type} == {@link SOBeard.Type#SYS_ORGANIZATION}</code>,
     * поиск идёт по СпО текущей организации в пустом комплекте.
     * Для foreign-бород возможны ситуации, когда не удается однозначно определить СпО, из которой должно быть получено описание организации
     * (например, в процедуре, работающей по расписанию под правами сервера). В таком случае будет получено первое попавшееся описание организации.
     * Описания организаций для foreign-бород идентичны с точностью до значения колонки active.
     * @return null для "частного лица", т.е. если <code>{@link SOBeard.Type} == {@link SOBeard.Type#PRIVATE_HUMAN}</code>
     * 
     * @see SOOrganizationDescription
     */
    SOOrganizationDescription getOrganization ();


    /**
     * Возвращает UNID доменного объекта-Организации для данной бороды.
     * @return null для "частного лица", т.е. если <code>{@link SOBeard.Type} == {@link SOBeard.Type#PRIVATE_HUMAN}</code>
     *
     * @see SOOrganizationDescription
     */
    String getOrganizationUNID (String spoComplect, String replicaSO);

    /**
     * Возвращает доменный объект-Организацию для данной бороды.
     * Для "Системной организации", т.е. если <code>{@link SOBeard.Type} == {@link SOBeard.Type#SYS_ORGANIZATION}</code>,
     * необходима конкретезация СпО.
     * Для foreign-бород возможны ситуации, когда не удается однозначно определить СпО, из которой должно быть получено описание организации
     * (например, в процедуре, работающей по расписанию под правами сервера). В таком случае будет получено первое попавшееся описание организации.
     * Описания организаций для foreign-бород идентичны с точностью до значения колонки active.
     * @param spoComplect - комплект СпО в котором необходимо искать связанную СО.
     * @param replicaSO - СО в которой необходимо искать СпО.
     * @return null для "частного лица", т.е. если <code>{@link SOBeard.Type} == {@link SOBeard.Type#PRIVATE_HUMAN}</code>
     *
     * @see SOOrganizationDescription
     */
    SOOrganizationDescription getOrganization (String spoComplect, String replicaSO);


    /**
     * Возвращает UNID доменного объекта-Организации для данной бороды.
     * Для "Системной организации", т.е. если <code>{@link SOBeard.Type} == {@link SOBeard.Type#SYS_ORGANIZATION}</code>,
     * необходима конкретезация СпО.
     * @param spoComplect - комплект СпО в котором необходимо искать связанную СО.
     * @return null для "частного лица", т.е. если <code>{@link SOBeard.Type} == {@link SOBeard.Type#PRIVATE_HUMAN}</code>
     *
     * @see SOOrganizationDescription
     */
    String getOrganizationUNID (String spoComplect);

    /**
     * Возвращает доменный объект-Организацию для данной бороды.
     * Для "Системной организации", т.е. если <code>{@link SOBeard.Type} == {@link SOBeard.Type#SYS_ORGANIZATION}</code>,
     * необходима конкретезация СпО.
     * Для foreign-бород возможны ситуации, когда не удается однозначно определить СпО, из которой должно быть получено описание организации
     * (например, в процедуре, работающей по расписанию под правами сервера). В таком случае будет получено первое попавшееся описание организации.
     * Описания организаций для foreign-бород идентичны с точностью до значения колонки active.
     * @param spoComplect - комплект СпО в котором необходимо искать связанную СО.
     * @return null для "частного лица", т.е. если <code>{@link SOBeard.Type} == {@link SOBeard.Type#PRIVATE_HUMAN}</code>
     *
     * @see SOOrganizationDescription
     */
    SOOrganizationDescription getOrganization (String spoComplect);



    /**
     * Возвращает бороду, находящуюся непосредственно "над" данной бородой в организационной иерархии. Этот метод
     * предназначен <b>только</b> для использования при реализации иерархических UI-выборок из СО.
     * <p>
     * Если необходима "навигация" по иерархии доменных объектов СО относительно данной бороды, то должен быть получен
     * ее доменный объект, и дальнейшая навигация должна осуществляться относительно этого доменного объекта.
     * <p>
     * Метод должен вызываться <b>только</b> у такой бороды ШЕ, Подразделения или Роли, которая не сдала свои дела, т.е.
     * у которой <code>({@link #effectiveData()} == null &amp; {@link #originalData()}&gt;{@link DocflowData#getType()} ==
     * {@link SOBeard.Type#SYS_HUMAN} | {@link SOBeard.Type#SYS_HUMAN_HEAD} | {@link SOBeard.Type#SYS_DEPARTMENT} | {@link SOBeard.Type#SYS_ROLE})</code>.
     * @return не может быть <code>null</code> при выполнении вышеуказанного условия вызова
     * 
     * @throws IllegalStateException если вышеуказанное условие вызова не выполнено
     */
    SOBeard getParent ();

    /**
     * возвращает "подсказку" для данной бороды
     * 
     * @return подсказка
     */
    public String getHint();

    /**
     * возвращает табельный номер персоны, связанной с данной бородой
     * @return табельный номер
     */
    public String getTabNum();

    /**
     * возвращает структурный код подразделения, связанный с данной бородой
     * @return структурный код
     */
    public String getCode();

    /**
     * возвращает список рабочих телефонов персоны, связанной с данной бородой
     * @return не может быть <code>null</code>
     */
    public Set<String> getPhoneWork();

    /**
     * Возвращает признак, является ли данная борода "активной", т.е. <b>не</b> удаленной.
     * @return <code>true</code> если борода активна, <code>false</code> в противном случае
     */
    boolean isActive ();

    /**
     * Возвращает доменный объект, чей доступ предоставляется данной бороде (в документах, где она выбрана).
     * @return <code>null</code> для <b>не</b>системной бороды, т.е. если <code>{@link #isTypeSystem()} == false</code>
     */
    SOUnit getAccessUnit ();

    /**
     * Перечисление возможных форматов бороды для метода <code>{@link SOBeard#toString(ToStringFormat)}</code>.
     * @author Gleb Nozdrachev
     */
    enum ToStringFormat {

        /**
         * Стандартный формат отображения: ФИО, ДОЛЖНОСТЬ (ПОДРАЗДЕЛЕНИЕ). Этот формат используется при
         * вызове метода <code>{@link Object#toString()}</code> без параметров.
         */
        DEFAULT,

        /**
         * Стандартный формат для CM-Domino (5 компонент для "системного", 4 для "несистемного") через "%".
         */
        CMDOMINO_STD,

        /**
         * Разновидность формата для CM-Domino (6 компонент - дополнительно с названием организации - для "системного", 4 для "несистемного") через "%".
         */
        CMDOMINO_WITH_ORG_IF_SYSTEM,
        /**
         * если выбиралась только организация - "название огранизации" % docid % replica-SpO
         * если выбирался сотрудник из организации - ФИО % docid % replica-Spp
         * если выбиралось частное лицо - ФИО % docid % replica-Spp
         */
        CMDOMINO_SHORT_SENDING,

        /**
         * Краткое имя
         */
        CMDOMINO_SHORT_NAME,

        /**
         * только реплика и UNID
         */
        CMDOMINO_ID

    }

    /**
     * Возвращает строковое представление бороды в указанном формате.
     * 
     * @param format - заданный формат; не может быть <code>null</code>
     * @return не может быть <code>null</code>
     * 
     * @see SOBeard.ToStringFormat
     */
    String toString (ToStringFormat format);

    /**
     * Возвращает признак, является ли данная борода <i>системной</i>.
     * @return <code>true</code> если <code>{@link SOBeard.Type} == {@link SOBeard.Type#SYS_HUMAN} | {@link SOBeard.Type#SYS_HUMAN_HEAD} |
     * {@link SOBeard.Type#SYS_DEPARTMENT} | {@link SOBeard.Type#SYS_ORGANIZATION} | {@link SOBeard.Type#SYS_ROLE}</code>, <code>false</code> в противном случае
     */
    boolean isTypeSystem ();

    /**
     * Возвращает данные об "оригинальной" части бороды. "Оригинальная" часть - это борода, которая
     * была указана (выбрана) в каком-то документе без учета возможной передачи дел. Т.е., это "исходная"
     * борода - та, что отображается в документах.
     * @return не может быть <code>null</code>
     * 
     * @see #effectiveData()
     * @see SOBeard.DocflowData
     */
    DocflowData originalData ();

    /**
     * Возвращает данные об "эффективной" части бороды. "Эффективная" часть - это борода, которая
     * приняла дела от "исходной". Т.е., это та борода, которая получает доступ к документу, где
     * была выбрана "исходная".
     * @return <code>null</code> если передачи дел у данной бороды не было или если она <b>не</b>системная,
     * т.е. если <code>{@link #isTypeSystem()} == false</code>
     * 
     * @see #originalData()
     * @see SOBeard.DocflowData
     */
    DocflowData effectiveData ();

    /**
     * Интерфейс-композит "данные об оригинальной / эффективной части бороды".
     * @author Gleb Nozdrachev
     * 
     * @see SOBeard#originalData()
     * @see SOBeard#effectiveData()
     */
    interface DocflowData {

        /**
         * Возвращает тип бороды.
         * @return не может быть <code>null</code>
         * 
         * @see SOBeard.Type
         */
        Type getType ();

        /**
         * Возвращает признак, является ли данная борода <b>не</b>вакантной.
         * @return <code>true</code> если <b>не</b>вакантна, <code>false</code> в противном случае
         */
        boolean isNotVacancy ();

        /**
         * Возвращает Ф.И.О. бороды.
         * @return не может быть <code>null</code>
         */
        String getShortName ();

        /**
         * Возвращает поное имя/наименование бороды.
         * @return не может быть <code>null</code>
         */
        String getFullName ();

        /**
         * Возвращает наименование должности бороды.
         * @return не может быть <code>null</code>
         */
        String getPostName ();

        /**
         * Возвращает название подразделения бороды.
         * @return не может быть <code>null</code>
         */
        String getDepartmentName ();

        /**
         * Возвращает доменный объект для данной бороды.
         * @return
         * <ul>
         * <li>{@link SOUnitOrganization} для системной организации, т.е. если <code>{@link SOBeard.Type} == {@link SOBeard.Type#SYS_ORGANIZATION}</code>
         * <li>{@link SOUnitDepartment} для подразделения, т.е. если <code>{@link SOBeard.Type} == {@link SOBeard.Type#SYS_DEPARTMENT}</code>
         * <li>{@link SOAppointment} для "обычного" (не РВЗ) назначения, т.е. если <code>{@link SOBeard.Type} == {@link SOBeard.Type#SYS_HUMAN}</code>
         * <li>{@link SOAppointmentHead} для назначения РВЗ, т.е. если <code>{@link SOBeard.Type} == {@link SOBeard.Type#SYS_HUMAN_HEAD}</code>
         * <li>{@link SORole} для Роли, т.е. если <code>{@link SOBeard.Type} == {@link SOBeard.Type#SYS_ROLE}</code>
         * <li>{@link SOOrganizationDescription} для несистемной организации, т.е. если <code>{@link SOBeard.Type} == {@link SOBeard.Type#NONSYS_ORGANIZATION}</code>
         * <li>{@link SOPersonNonsystemOrganization} для субъекта несистемной организации, т.е. если <code>{@link SOBeard.Type} == {@link SOBeard.Type#NONSYS_HUMAN}</code>
         * <li>{@link SOPersonNonsystemPrivate} для частного лица, т.е. если <code>{@link SOBeard.Type} == {@link SOBeard.Type#PRIVATE_HUMAN}</code>
         * <li>может быть <code>null</code>, см. {@link #getPartyUNID()}
         * </ul>
         */
        SOParty getParty ();

        /**
         * Возвращает UNID доменного объекта для данной бороды.
         * @return может быть <code>null</code> из-за некорректных данных в CM-Domino
         */
        String getPartyUNID ();

    }

    /**
     * Возвращает внешний идентификатор бороды.
     * 
     * @return может быть {@code null}.
     */
    String getIntegrationId();
    
    /**
     * Возвращает адрес бороды (только для некоторых типов бород).
     * @return не может быть <code>null</code>
     */
    String getAddress ();
    
    /**
     * Возвращает признак того, что борода создана из "чужой" системной организации.
     */
    boolean isForeign ();

    /**
     * Возвращает сеть бороды.
     * 
     * @return может быть {@code null}.
     */
    default String getNativeNet() {
        return null;
    }
    
    /**
     * Возвращает домашнюю сеть бороды.
     * 
     * @return может быть {@code null}.
     */
    default String getHomeNet() {
        return null;
    } 

     /**
     * Признак, что сотрудник подключен к системе.
     * 
     * @return {@code true} - если подключен и может работать в системе в
     *         "полном" режиме, {@code false} - не подключен и не имеет
     *         возможности работать полноценно в системе.
     */
    boolean isConnectedToSystem();
    
    boolean hasPhoto();
    
    void setPhotoAvailable(boolean hasPhoto);

    /**
     * Возвращает название файла фото.
     * @return может быть {@code null}.
     */
    @Nullable
    String getPhotoFileName();

    /**
     * Устанавливает название файла фото.
     * @param photoFileName - может быть {@code null}.
     */
    void setPhotoFileName(String photoFileName);

    Set<SOBeard> getJoined();

    /**
     * Обособленное подразделение бороды
     * @return - обособленное подразделение бороды, можеть быть {@code null}
     * @see SOBeard
     */
    @Nullable
    SOBeard.Mapped getIsolatedDep();

    /**
     * @param location - обособленное подразделение бороды, можеть быть {@code null}
     */
    void setIsolatedDep(@Nullable SOBeard.Mapped location);

Статус

В РАБОТЕ

Комментарий

Методы, свойства, внутренние классы

  • Нет меток