Package com.ipc.oce

Source Code of com.ipc.oce.ApplicationDriver

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

import java.util.Arrays;

import javax.xml.namespace.NamespaceContext;

import com.ipc.oce.v80.ApplicationDriverV80;
import com.ipc.oce.v81.ApplicationDriverV81;
import com.ipc.oce.v82.ApplicationDriverV82;


/**
* @author Konovalov
*
*/
public abstract class ApplicationDriver {
 
  /**
   * Массив имен доступных драйверов.
   */
  public static final String[] AVAILABLE_DRIVERS;
  static {
    AVAILABLE_DRIVERS = new String[] {
      "V80Driver",
      "V81Driver",
      "V82Driver"
    };
  }
 
  /**
   * Парсер синонимов 1С.
   */
  private TypeSynonymParser typeSynonymParser = null;
 
  /**
   * Фабрика статичных объектов (varsets).
   */
  private VariantFactory variantGUIDTable = null;
 
  /**
   * Контекст пространства имен xml 1С.
   */
  private NamespaceContext namespaceContext = null;
 
  /**
   * Версия драйвера.
   */
  protected String driverVersion = null;
 
  /**
   * Идентификатор объекта DCOM (имя или CLSID).
   */
  protected String cApplicationId = null;
 
  /**
   * Указывает на то, что находится в cApplicationId (имя или CLSID).
   */
  protected Boolean cApplIdIsClsId = true;
 
  /**
   * Параметр выполнения авторегистрации в DCOM.
   */
  protected Boolean autoRegistration = false;
 
  /**
   *
   */
  protected ApplicationDriver() {
    super();
  }
 
  /**
   * Проверка первичных настроек драйвера.
   *
   * @return true - все необходимые настройки установлены, false - иначе.
   */
  private boolean isAllSet() {
    boolean res = true;
    if (typeSynonymParser == null) {
      res = false;
    }
    if (variantGUIDTable == null) {
      res = false;
    }
    if (cApplicationId == null && cApplIdIsClsId == null) {
      res = false;
    }
    return res;
  }
 
  /**
   * Получение парсера синонимов 1С.
   * @return TypeSynonymParser
   */
  protected final TypeSynonymParser getTypeSynonymParser() {
    return typeSynonymParser;
  }
 
  /**
   * Установка парсера синонимов 1С.
   *
   * @param typeSynonymParser
   *            - конкретная реализация парсера. Определяется относительно
   *            версии 1С.
   */
  protected final void setTypeSynonymParser(TypeSynonymParser typeSynonymParser) {
    this.typeSynonymParser = typeSynonymParser;
  }
 
  protected final VariantFactory getVariantGUIDTable() {
    return variantGUIDTable;
  }
 
  protected final void setVariantGUIDTable(VariantFactory variantGUIDTable) {
    this.variantGUIDTable = variantGUIDTable;
  }

  public final String getDriverVersion() {
    return driverVersion;
  }

  protected final String getcApplicationId() {
    return cApplicationId;
  }

  protected final Boolean getcApplIdIsClsId() {
    return cApplIdIsClsId;
  }

  protected final Boolean getAutoRegistration() {
    return autoRegistration;
  }

  public final void setAutoRegistration(Boolean autoRegistration) {
    this.autoRegistration = autoRegistration;
  }
 
 
 
  protected NamespaceContext getNamespaceContext() {
    return namespaceContext;
  }

  protected void setNamespaceContext(NamespaceContext namespaceContext) {
    this.namespaceContext = namespaceContext;
  }
 
  /**
   * Получение экземпляра ApplicationDriver указаной версии (имени).
   *
   * @param driverName - имя загружаемого драйвера.
   * @return ApplicationDriver или null, если имя было null (это фактически
   *         означает использование default-драйвера)
   */
  public static ApplicationDriver loadDriver(final String driverName) {
    ApplicationDriver driver = null;
    if (driverName == null) {
      return null;
    }
    if (driverName.equals("V81Driver")) {
      driver = new ApplicationDriverV81();
    } else
    if (driverName.equals("V80Driver")) {
      driver = new ApplicationDriverV80();
    } else
    if (driverName.equals("V82Driver")) {
      driver = new ApplicationDriverV82();
    } else {
      throw new RuntimeException("Driver with name '" + driverName
          + "' not found. Choose: "
          + Arrays.toString(AVAILABLE_DRIVERS));
    }
   
    if (driver.isAllSet()) {
      return driver;
    } else {
      throw new RuntimeException("Driver " + driverName + "["
          + driver.getDriverVersion() + "] not configured");
    }
  }
}
TOP

Related Classes of com.ipc.oce.ApplicationDriver

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.