Package com.ipc.oce.objects

Source Code of com.ipc.oce.objects.OCExchangePlanManager

/**
*
*/
package com.ipc.oce.objects;

import org.jinterop.dcom.common.JIException;
import org.jinterop.dcom.core.JIVariant;
import org.jinterop.dcom.impls.automation.IJIDispatch;

import com.ipc.oce.OCApp;
import com.ipc.oce.OCObject;
import com.ipc.oce.OCStructure;
import com.ipc.oce.OCVariant;
import com.ipc.oce.metadata.objects.OCExchangePlanMetadataObject;
import com.ipc.oce.metadata.objects._OCCommonMetadataObject;

/**
* Предназначен для управления планом обмена, как объектом конфигурации. С
* помощью этого объекта осуществляется поиск узлов, создание новых узлов,
* работа с формами и макетами плана обмена. Доступ к объекту осуществляется
* через свойства объекта ПланыОбменаМенеджер. Полное имя типа объекта
* определяется с учетом имени плана обмена конфигурации.
*
* @author Konovalov
*
*/
public class OCExchangePlanManager extends _OCAbstractManager {

  /**
   * @param aDispatch
   */
  public OCExchangePlanManager(IJIDispatch aDispatch) {
    super(aDispatch);
  }

  /**
   * @param aDispatch
   * @throws JIException
   */
  public OCExchangePlanManager(JIVariant aDispatch) throws JIException {
    super(aDispatch);
  }

  /**
   * @param object
   */
  public OCExchangePlanManager(OCObject object) {
    super(object);
  }

  @Override
  protected _OCCommonMetadataObject loadMetadata() throws JIException {
    return OCApp.getInstance(getAssociatedSessionID()).getMetadata().getExchangePlans().find(managerName);
  }

  @Override
  public OCExchangePlanMetadataObject getMetadata() throws JIException {
    return new OCExchangePlanMetadataObject(super.getMetadata());
  }
 
  /**
   * Формирует выборку узлов по заданным условиям.
   * @return ExchangePlanSelection
   * @throws JIException
   */
  public OCExchangePlanSelection select() throws JIException{
    return new OCExchangePlanSelection(callMethodA("Select"));
  }
 
  /**
   * Формирует выборку узлов по заданным условиям.
   * @param structure Структура. Задает поле и значение отбора открываемой выборки. Ключ структуры описывает имя поля, а значение структуры - значение отбора по этому полю. В качестве полей для отбора могут задаваться только поля "Код", "Наименование" и реквизиты узла, для которых в конфигураторе признак индексирования установлен в значение "Индексировать" или в значение "Индексировать с доп. упорядоч.". Важно! Структура может содержать только один элемент.
   * @param order  Строка с именем реквизита узла, определяющая упорядочивание узлов в выборке. Может быть указано "Код", "Наименование" или имя одного из реквизитов примитивного типа (Число, Строка, Дата, Булево), для которого установлен признак "Индексирование" в значение "Индексировать" или в "Индексировать с доп. упорядоч." в конфигураторе. После имени реквизита через пробел может быть указано направление сортировки. Направление определяется: "Убыв" ("Desc") - упорядочивать по убыванию; "Возр" ("Asc") - упорядочивать по возрастанию. По умолчанию сортировка производится по возрастанию. Если параметр не указан, то порядок определяется основным представлением плана обмена. Значение по умолчанию: Пустая строка
   * @return ExchangePlanSelection
   * @throws JIException
   */
  public OCExchangePlanSelection select(OCStructure structure, String order) throws JIException{
    return new OCExchangePlanSelection(callMethodA("Select", new Object[]{ocObject2Dispatch(structure) , new JIVariant(order) })[0]);
  }
 
  /**
   * Если не существует ни одного узла с требуемым кодом, то возвращается пустая ссылка
   * @param code Искомый код.
   * @return
   * @throws JIException
   */
  public OCExchangePlanRef findByCode(String code) throws JIException{
    return new OCExchangePlanRef(callMethodA("FindByCode", new Object[]{new JIVariant(code)})[0]);
  }
 
  /**
   * Осуществляет поиск узла плана обмена по его наименованию.
   *
   * @param description
   *            - Строка, содержащая искомое наименование.
   * @param exact
   *            - Определяет режим поиска по полному соответствию. Поиск будет
   *            успешным, если строка поиска: в случае значения параметра Ложь
   *            - будет соответствовать левой части наименования; в случае
   *            значения параметра Истина - будет полностью совпадать с
   *            наименованием (за исключением "хвостовых" пробелов в
   *            наименовании).
   *
   * @return OCExchangePlanRef -  Ссылка на найденный узел. Если не существует ни одного узла с требуемым наименованием, то будет возвращена пустая ссылка
   * @throws JIException
   */
  public OCExchangePlanRef findByDescription(String description, boolean exact) throws JIException {
    return new OCExchangePlanRef(callMethodA("FindByDescription", new Object[]{new JIVariant(description), new JIVariant(exact)})[0]);
  }
 
  /**
   * Осуществляет поиск узла плана обмена по его наименованию.
   *
   * @param description
   *            - Строка, содержащая искомое наименование.
   *
   * @return OCExchangePlanRef -  Ссылка на найденный узел. Если не существует ни одного узла с требуемым наименованием, то будет возвращена пустая ссылка
   * @throws JIException
   */
  public OCExchangePlanRef findByDescription(String description) throws JIException {
    return findByDescription(description, false);
  }
 
  /**
   * Осуществляет поиск узла по значению реквизита. Если существует несколько
   * узлов с указанным наименованием, то будет найден только один из них.
   *
   * @param attrName
   *            Имя реквизита, как он задан в конфигураторе, по значению
   *            которого осуществляется поиск. Тип значения произвольный,
   *            кроме ХранилищеЗначения и строк произвольной длины.
   * @param value
   *            Значение реквизита, по которому должен выполняться поиск.
   * @return Если не существует ни одного узла с требуемым наименованием, то
   *         будет возвращена пустая ссылка.
   * @throws JIException
   */
  public OCExchangePlanRef findByAttribute(String attrName, OCVariant value) throws JIException {
    return new OCExchangePlanRef(callMethodA("FindByAttribute", new Object[]{new JIVariant(attrName), ocVariant2JI(value)})[0]);
  }
 
  /**
   * Формирует ссылку из значения типа УникальныйИдентификатор. Данный уникальный идентификатор может быть в дальнейшем получен из ссылки методом УникальныйИдентификатор.
   * @param uuid Уникальный идентификатор, из которого будет формироваться ссылка. Если параметр не указан, то будет сформирована новая уникальная ссылка
   * @return ПланОбменаСсылка.
   * @throws JIException
   */
  public OCExchangePlanRef getRef(OCUUID uuid) throws JIException{
    return new OCExchangePlanRef(callMethodA("GetRef", new Object[]{uuid.dispatch()})[0]);
  }
 
  /**
   * Получает пустое значение ссылки на план обмена данного вида. Может использоваться, например, в тех случаях, когда нужно передать пустую ссылку в параметр метода.
   * @return ПланОбменаСсылка.
   * @throws JIException
   */
  public OCExchangePlanRef emptyRef() throws JIException{
    return new OCExchangePlanRef(callMethodA("EmptyRef"));
  }
 
  /**
   * Создает новый узел обмена. Использование метода не приводит к записи созданного объекта в базу данных.
   * @return ПланОбменаОбъект.
   * @throws JIException
   */
  public OCExchangePlanObject createNode() throws JIException{
    return new OCExchangePlanObject(callMethodA("CreateNode"));
  }
 
  /**
   * Получает ссылку на предопределенный узел, соответствующий данной базе данных
   * @return ПланОбменаСсылка.
   * @throws JIException
   */
  public OCExchangePlanRef thisNode() throws JIException{
    return new OCExchangePlanRef(callMethodA("ThisNode"));
  }

}
TOP

Related Classes of com.ipc.oce.objects.OCExchangePlanManager

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.