package com.k_int.commons.installer.dbsetup;

import java.util.Map;
import java.util.HashMap;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.*;


public class Config {

  private ApplicationContext ctx = null;
  private String sess_factory_name = null;
  public static Log log = LogFactory.getLog(DBUpdater.class);
  private Map class_defs = new HashMap();

  public Config() {
  }

  public void addRegisteredClass(RegisteredClassDef class_def) {
    log.debug("addRegisteredClass "+class_def.getClassName());
    class_defs.put(class_def.getClassName(),class_def);
  }

  public RegisteredClassDef lookupClassDef(String class_name) {
    return (RegisteredClassDef) class_defs.get(class_name);
  }

  public void setContext(String context) {
    log.debug("Set app ctx : "+context);
    // 1. Configure spring context
    ctx = new ClassPathXmlApplicationContext( new String[] { context } );
  }

  public ApplicationContext getAppCtx() {
    return ctx;
  }

  public String getSessFactoryName() {
    return sess_factory_name;
  }

  public void setSessFactoryName(String sess_factory_name) {
    log.debug("Set sess factory name "+sess_factory_name);
    this.sess_factory_name = sess_factory_name;
  }
}
