Package com.ipc.oce.xml.oc

Source Code of com.ipc.oce.xml.oc.OCXDTODataObject

/**
*
*/
package com.ipc.oce.xml.oc;

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.OCVariant;
import com.ipc.oce.varset.EXMLForm;

/**
* Объект данных модели XDTO
* @author Konovalov
*
*/
public class OCXDTODataObject extends OCObject {

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

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

  /**
   * @param aDispatch
   * @throws JIException
   */
  public OCXDTODataObject(JIVariant aDispatch) throws JIException {
    super(aDispatch);
  }
 
  /**
   * Получает объект-владелец данного объекта.
   * @return OCXDTODataObject или null если owner отсутствует
   * @throws JIException
   */
  public OCXDTODataObject getOwner() throws JIException{
    try {
      return new OCXDTODataObject(callMethodA("Owner"));
    } catch (IllegalStateException ise) {
      return null;
    }
  }
 
  /**
   * Получает свойство объекта-владельца, владеющее данным объектом
   * @return
   * @throws JIException
   */
  public OCXDTOProperty getOwningProperty() throws JIException{
    try {
      return new OCXDTOProperty(callMethodA("OwningProperty"));
    } catch (IllegalStateException ise) {
      return null;
    }
  }
 
  /**
   * Установка значения нового произвольного свойства. Добавляет значение произвольного свойства. Имя свойства будет создано автоматически, на основе локального имени XML представления свойства.
   * В случае, если произвольное свойство с полученным именем уже существует и, если предыдущая установка значения произвольного свойства выполнялась для данного произвольного свойства, либо другого свойства в случае наличия последовательности, - свойство становится списковым с неограниченной верхней границей.
   * В противном случае будет инициировано исключение.
   * Тип создаваемого свойства всегда устанавливается anyType пространства имен схемы XML.
   * Вызов метода может быть осуществлен только для объектов типов с установленным свойством Открытый, в противном случае будет инициировано исключение.
   * @param Форма XML представления произвольного свойства
   * @param URI пространства имен XML представления произвольного свойства.
   * @param Локальное имя произвольного свойства
   * @param Элемент данных XDTO (<b>значение</b>), являющийся значением произвольного свойства
   * @throws JIException
   */
  public void addValue(EXMLForm form, String namespaceURI, String localname, OCXDTODataValue dataValue) throws JIException{
    callMethod("Add", new Object[]{
        ocObject2Dispatch(form),
        new JIVariant(namespaceURI),
        new JIVariant(localname),
        ocObject2Dispatch(dataValue)
    });
  }
 
  /**
   * Установка значения нового произвольного свойства. Добавляет значение произвольного свойства. Имя свойства будет создано автоматически, на основе локального имени XML представления свойства.
   * В случае, если произвольное свойство с полученным именем уже существует и, если предыдущая установка значения произвольного свойства выполнялась для данного произвольного свойства, либо другого свойства в случае наличия последовательности, - свойство становится списковым с неограниченной верхней границей.
   * В противном случае будет инициировано исключение.
   * Тип создаваемого свойства всегда устанавливается anyType пространства имен схемы XML.
   * Вызов метода может быть осуществлен только для объектов типов с установленным свойством Открытый, в противном случае будет инициировано исключение.
   * @param Форма XML представления произвольного свойства
   * @param URI пространства имен XML представления произвольного свойства.
   * @param Локальное имя произвольного свойства
   * @param Элемент данных XDTO (<b>объект</b>), являющийся значением произвольного свойства
   * @throws JIException
   */
  public void addValue(EXMLForm form, String namespaceURI, String localname, OCXDTODataObject dataObject) throws JIException{
    callMethod("Add", new Object[]{
        ocObject2Dispatch(form),
        new JIVariant(namespaceURI),
        new JIVariant(localname),
        ocObject2Dispatch(dataObject)
    });
  }
 
  /**
   * Установка значения существующего произвольного свойства. Добавляет значение произвольного свойства с указанным именем.
   * Если свойства с указанным именем не существует, то будет инициировано исключение.
   * Если предыдущая установка значения произвольного свойства выполнялась для данного произвольного свойства, либо другого свойства в случае наличия последовательности, - свойство становится списковым с неограниченной верхней границей.
   * В противном случае будет инициировано исключение.
   * Вызов метода может быть осуществлен только для объектов типов с установленным свойством Открытый, в противном случае будет инициировано исключение.
   * @param Имя произвольного свойства
   * @param Элемент данных XDTO (значение), являющийся значением произвольного свойства.
   * @throws JIException
   */
  public void addValue(String elementName, OCXDTODataValue dataValue) throws JIException{
    callMethod("Add", new Object[]{new JIVariant(elementName), ocObject2Dispatch(dataValue)});
  }
 
  /**
   * Установка значения существующего произвольного свойства. Добавляет значение произвольного свойства с указанным именем.
   * Если свойства с указанным именем не существует, то будет инициировано исключение.
   * Если предыдущая установка значения произвольного свойства выполнялась для данного произвольного свойства, либо другого свойства в случае наличия последовательности, - свойство становится списковым с неограниченной верхней границей.
   * В противном случае будет инициировано исключение.
   * Вызов метода может быть осуществлен только для объектов типов с установленным свойством Открытый, в противном случае будет инициировано исключение.
   * @param Имя произвольного свойства
   * @param Элемент данных XDTO (объект), являющийся значением произвольного свойства.
   * @throws JIException
   */
  public void addValue(String elementName, OCXDTODataObject dataObject) throws JIException{
    callMethod("Add", new Object[]{new JIVariant(elementName), ocObject2Dispatch(dataObject)});
  }
 
  /**
   * Установка свойств значения свойств объекта XDTO. Конкретный состав свойств зависит от типа объекта метаданных
   * @param propertieName Имя устанавливаемого свойства
   * @param dataObject OCXDTODataObject
   * @throws JIException
   */
  public void setValue(String propertieName, OCXDTODataObject dataObject) throws JIException{
    put(propertieName, new JIVariant(ocObject2Dispatch(dataObject)));
  }
 
  /**
   * Установка свойств значения свойств объекта XDTO. Конкретный состав свойств зависит от типа объекта метаданных
   * @param propertieName Имя устанавливаемого свойства
   * @param object произвольный объект
   * @throws JIException
   */
  public void setValue(String propertieName, OCVariant object) throws JIException{
    put(propertieName, ocVariant2JI(object));
  }
 
  /**
   * Получение значения по свойству
   * @param propName OCXDTOProperty
   * @return
   * @throws JIException
   */
  public OCVariant getValue(OCXDTOProperty propName) throws JIException{
    return new OCVariant(callMethodA("Get", new Object[]{ocObject2Dispatch(propName)})[0]);
  }
 
  /**
   * Получение по get
   * @param propName
   * @return OCVariant
   * @throws JIException
   */
  public OCVariant getValue(String propName) throws JIException{
    return new OCVariant(get(propName));
  }
 
  /**
   * Получает значение свойства по выражению XPath.
   * @param xpath Строка-выражение XPath для получения значения свойства
   * @return
   * @throws JIException
   */
  public OCVariant getValueForXPath(String xpath) throws JIException{
    return new OCVariant(callMethodA("Get", new Object[]{new JIVariant(xpath)})[0]);
  }
 
  // TODO надо доделать, пока все что хотел от xsdo получил
 
}
TOP

Related Classes of com.ipc.oce.xml.oc.OCXDTODataObject

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.