Package com.ipc.oce.metadata.objects

Source Code of com.ipc.oce.metadata.objects.OCDocumentMetadataObject

package com.ipc.oce.metadata.objects;

import java.util.ArrayList;
import java.util.List;

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

import com.ipc.oce.OCObject;
import com.ipc.oce.metadata.AttributeMetadataHolder;
import com.ipc.oce.metadata.collection.OCMetadataAttributeCollection;
import com.ipc.oce.metadata.collection.OCMetadataTabularSectionCollection;
import com.ipc.oce.metadata.collection._OCMetadataObjectPropertyValueCollection;
import com.ipc.oce.varset.OCBusinessProcessNumberType;
import com.ipc.oce.varset.OCDefaultDataLockControlMode;
import com.ipc.oce.varset.OCDocumentNumberPeriodicity;
import com.ipc.oce.varset.OCPosting;
import com.ipc.oce.varset.OCRealTimePosting;


public class OCDocumentMetadataObject extends _OCCommonMetadataObject implements AttributeMetadataHolder {
  public static String metadataObjectName = "Документ";
 
  private OCMetadataAttributeCollection attributeCollection = null;
  private OCMetadataTabularSectionCollection tabularCollection = null;
 
  private List<String> attributesName = null;
 
  private List<String> tabularSectionsName = null;
  //=============================================================
 

  public OCDocumentMetadataObject(OCObject object) {
    super(object);
  }

  public OCDocumentMetadataObject(IJIDispatch aDispatch) {
    super(aDispatch);
  }

  public OCDocumentMetadataObject(JIVariant aDispatch) throws JIException {
    super(aDispatch);
  }
 
  /**
   * Получения списка имен атрибутов.
   * @return List<String>
   * @throws JIException
   */
  public synchronized List<String> getAttributesName() throws JIException {
    if (attributesName == null) {
      OCMetadataAttributeCollection attrCollection = getAttributes();
      attributesName = new ArrayList<String>();
      for (OCAttributeMetadataObject attr : attrCollection) {
        attributesName.add(attr.getName());
      }
    }
    return attributesName;
  }
 
  /**
   * Если свойство установлено в значение Истина, то новому объекту базы
   * данных система будет автоматически присваивать очередной порядковый
   * номер/код.
   *
   * @return
   * @throws JIException
   */
  public Boolean isAutoNumbering() throws JIException {
    return get("AutoNumbering").getObjectAsBoolean();
  }

  /**
   * Максимальная длина номера объекта базы данных (например, документа,
   * бизнес-процесса).
   *
   * @return
   * @throws JIException
   */
  public int getNumberLength() throws JIException {
    return get("NumberLength").getObjectAsInt();
  }

  /**
   * ОбъектМетаданных: Нумератор.
   *
   * @return
   * @throws JIException
   */
  public OCDocumentNumeratorMetadataObject getNumerator() throws JIException {
    try {
      return new OCDocumentNumeratorMetadataObject(get("Numerator"));
    } catch (IllegalStateException ise) {
      return null;
    }
  }
 
  /**
   * Если это свойство установлено в значение Разрешить, то оперативное
   * проведение документа разрешено. В противном случае оперативное проведение
   * документа запрещено
   *
   * @return
   * @throws JIException
   */
  public OCRealTimePosting getRealTimePosting() throws JIException {
    return new OCRealTimePosting(get("RealTimePosting"));
  }

  /**
   * Устанавливает пределы контроля уникальности номеров и период
   * повторяемости номеров (например, Год, Квартал, Месяц, День).
   *
   * @return
   * @throws JIException
   */
  public OCDocumentNumberPeriodicity getNumberPeriodicity()
      throws JIException {
    return new OCDocumentNumberPeriodicity(get("NumberPeriodicity"));
  }
 
  /**
   * Определяет, разрешено ли проведение документа при записи
   * @return
   * @throws JIException
   */
  public OCPosting getPosting() throws JIException {
    return new OCPosting(get("Posting"));
  }
 
  /**
   * Определяет режим управления блокировкой данных объекта конфигурации
   * (например, Автоматический, Управляемый, АвтоматическийИУправляемый).
   *
   * @return
   * @throws JIException
   */
  public OCDefaultDataLockControlMode getDataLockControlMode() throws JIException {
    return new OCDefaultDataLockControlMode(get("DataLockControlMode"));
  }
 
  /**
   * Коллекция объектов метаданных,
   * описывающих реквизиты данного объекта метаданных.
   */
  public OCMetadataAttributeCollection getAttributes() throws JIException {
    if (attributeCollection == null) {
      attributeCollection = new OCMetadataAttributeCollection(get("Attributes"));
    }
    return attributeCollection;
  }
 
  /**
   * Коллекция объектов метаданных,
   * описывающих табличные части данного объекта метаданных.
   * @return
   * @throws JIException
   */
  public OCMetadataTabularSectionCollection getTabularSections() throws JIException {
    if (tabularCollection == null) {
      tabularCollection = new OCMetadataTabularSectionCollection(get("TabularSections"));
    }
    return tabularCollection;
  }
 
  /**
   * Получение списка имен табличных частей.
   * @return List<String>
   * @throws JIException
   */
  public synchronized List<String> getTabularSectionsName() throws JIException {
    if (tabularSectionsName == null) {
      OCMetadataTabularSectionCollection tabCollection = getTabularSections();
      tabularSectionsName = new ArrayList<String>();
      for (OCTabularSectionMetadataObject tab : tabCollection) {
        tabularSectionsName.add(tab.getName());
      }
    }
    return tabularSectionsName;
  }
 
  /**
   * Если это свойство установлено в значение Истина, то при создании нового объекта базы данных будет выполняться автоматический контроль уникальности его кода/номера.
   * @return
   * @throws JIException
   */
  public Boolean checkUnique() throws JIException {
    return get("CheckUnique").getObjectAsBoolean();
  }
 
  /**
   * Определяет тип номера бизнес-процесса (например, Число, Строка).
   * @return
   * @throws JIException
   */
  public OCBusinessProcessNumberType getNumberType() throws JIException {
    return new OCBusinessProcessNumberType(get("NumberType"));
  }
 
  /**
   *
   * @return
   * @throws JIException
   */
  public _OCMetadataObjectPropertyValueCollection getBasedOn() throws JIException {
    return new _OCMetadataObjectPropertyValueCollection(get("BasedOn"));
  }
 
  @Override
  public String toString() {
    try {
      return getName();
    } catch (JIException e) {
      return "";
    }
  }
 

}
TOP

Related Classes of com.ipc.oce.metadata.objects.OCDocumentMetadataObject

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.