Package com.ipc.oce

Source Code of com.ipc.oce.VariantFactory

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

import java.util.HashMap;
import java.util.Map;

import org.jinterop.dcom.common.JIException;

import com.ipc.oce.varset.EActivator;



/**
* @author Konovalov
*
*/
public abstract class VariantFactory {
 
  private OCApp appInstance = null;

  private Map<String, EActivator> varsetObjects = null;
 
  private static final int DEFAULT_SIZE = 50;
 
  /**
   *
   */
  protected VariantFactory() {
    varsetObjects = new HashMap<String, EActivator>(DEFAULT_SIZE);
  }
 
  public void storeObject(String objectName, EActivator objectInstance){
    varsetObjects.put(objectName, objectInstance);
  }
 
  /**
   * Поиск загегистрированных varset активаторов.
   * @param <T>
   * @param name <SimpleClassName>.<FieldValue>
   * @return если объект найден будет выполнен bind(rebind) к сессии. Если не найден, то Null
   * @throws JIException
   */
  @SuppressWarnings("unchecked")
  public <T> T findAndBindObject(String name) throws JIException{
    EActivator activator = varsetObjects.get(name);
    if (activator != null) {
      activator.bind(appInstance); // bind forced
    }
    return (T) activator;
  }
 
  /**
   * @deprecated since 0.4.0 use bindObject instead!
   * bind активатора рекомендуется производить при обращении к объекту.
   * Хранение ссылок на готовые объекты не привело ни к чему хорошему.
   * @param <T>
   * @param objectName
   * @return
   */
  @SuppressWarnings("unchecked")
  public <T> T findObject(String objectName){
    return (T) varsetObjects.get(objectName);
  }
 
  protected final void setAppInstance(OCApp appInstance) {
    if (appInstance == null) {
      throw new RuntimeException(
          "VariantFactory: application instance can't be null");
    }
    this.appInstance = appInstance;
  }
 
  /**
   * Метод создения наборов активаторов. Реализуется в конкретной имплементации для версии драйвера
   * @throws JIException
   */
  protected abstract void activate() throws JIException;
 
/*  protected OCObject inner2object(String inner) throws JIException{
    return new OCObject(appInstance.valueFromStringInternal(inner));
  }*/
 
 
}
 
TOP

Related Classes of com.ipc.oce.VariantFactory

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.