Package com.ipc.oce

Source Code of com.ipc.oce.OCValueList

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

import java.util.Iterator;

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

import com.ipc.oce.metadata.OCTypeDescription;

/**
* Используется для доступа к методам списка значений в целом.
* @author Konovalov
*
*/
public class OCValueList extends OCObject implements Iterable<OCValueListItem>{

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

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

  /**
   * @param aDispatch
   * @throws JIException
   */
  public OCValueList(JIVariant aDispatch) throws JIException {
    super(aDispatch);
  }
 
  /**
   * Определяет тип для значений, которые могут храниться в элементах данного списка значений.
   * @return
   * @throws JIException
   */
  public OCTypeDescription getValueType() throws JIException {
    return new OCTypeDescription(get("ValueType"));
  }
 
  /**
   * Определяет тип для значений, которые могут храниться в элементах данного списка значений.
   * @param typeDescription
   * @throws JIException
   */
  public void setValueType(OCTypeDescription typeDescription) throws JIException {
    putRef("ValueType", typeDescription);
  }
 
  // TODO походу объект бесполезен

  /**
   * Получает количество элементов списка значений.
   */
  public int size() throws JIException {
    return callMethodA("Count").getObjectAsInt();
  }
 
  /**
   * Получает значение по индексу.
   * @param index
   * @return
   * @throws JIException
   */
  public OCValueListItem get(int index) throws JIException {
    return new OCValueListItem(callMethodA("Get", new JIVariant(index))[0]);
  }

  /* (non-Javadoc)
   * @see java.lang.Iterable#iterator()
   */
  public Iterator<OCValueListItem> iterator() {
    EnumVARIANT<OCValueListItem> enumV = new EnumVARIANT<OCValueListItem>(this) {
     
      @Override
      protected OCValueListItem castToGeneric(JIVariant variant) {
        try {
          return new OCValueListItem(variant);
        } catch (JIException e) {
          throw new RuntimeException(e);
        }
      }
    };
    return enumV;
  }
 
 
}
TOP

Related Classes of com.ipc.oce.OCValueList

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.