Package com.ipc.oce.varset

Source Code of com.ipc.oce.varset.EActivator

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

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;

/**
* Класс реализующий привязку суперкласса к dispatch конкретной сессии и хранение строки внутреннего представления объекта
* @author Konovalov
*
*/
public abstract class EActivator extends OCObject {

  private String innerString = null;
 
  private boolean binded = false;
 
  @SuppressWarnings("deprecation")
  protected EActivator(String innerString) {
    this.innerString = innerString;
  }
 
  /**
   * Для создания экземпляров не из таблиц активации, а из объектов 1С.
   * @param aDispatch
   * @throws JIException
   */
  protected EActivator(JIVariant aDispatch) throws JIException {
    super(aDispatch);
  }

  public String getInnerString() throws JIException {
    if (innerString == null) {
      OCApp app = OCApp.getInstance(getAssociatedSessionID());
      innerString = app.valueToStringInternal(this);
    }
    return innerString;
  }
 
  /**
   * Привязка активатора к конкретному экземпляру сессии, dispatch полечается из представления внутренней строки
   * @param application
   * @throws JIException
   */
  public void bind(OCApp application) throws JIException {
    IJIDispatch dispatch = ocObject2Dispatch(application.valueFromStringInternal(getInnerString()));
    setDispatch(dispatch);
    binded = true;
  }
 
  public boolean wasBinded(){
    return binded;
  }
 
 
}
TOP

Related Classes of com.ipc.oce.varset.EActivator

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.