Package org.huihoo.workflow.impl.store

Source Code of org.huihoo.workflow.impl.store.DatabaseRegistry

//----------------------------BEGIN LICENSE----------------------------
/*
* Willow : the Open Source WorkFlow Project
* Distributable under GNU LGPL license by gun.org
*
* Copyright (C) 2004-2010 huihoo.org
* Copyright (C) 2004-2010  ZosaTapo <dertyang@hotmail.com>
*
* ====================================================================
* Project Homepage : http://www.huihoo.org/willow
* Source Forge     : http://sourceforge.net/projects/huihoo
* Mailing list     : willow@lists.sourceforge.net
*/
//----------------------------END  LICENSE-----------------------------
package org.huihoo.workflow.impl.store;

import org.apache.commons.collections.FastHashMap;
import org.huihoo.workflow.store.spi.SpiCaseDatabase;
import org.huihoo.workflow.store.spi.SpiUserDatabase;

/**
* @author Administrator
*
* To change the template for this generated type comment go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
public class DatabaseRegistry
{
//------------------------------------------------------------------
//  Default database implementation
//------------------------------------------------------------------
  public final static String  WILLOW_DRIVER_CLASS = "org.huihoo.workflow.jdbc";
 
  private static FastHashMap caseDBS = new FastHashMap()
  private static FastHashMap userDBS = new FastHashMap();
 
  static
  {
    loadOnStartup();
  }
 
  public final static SpiCaseDatabase getCaseDatabase(String vendorDriverClazz)
  {
    return lookupCaseDB(vendorDriverClazz);
  }
  public final static SpiUserDatabase getUserDatabase(String vendorDriverClazz)
  {
    return lookupUserDB(vendorDriverClazz);
  }
 
  public final static SpiCaseDatabase lookupCaseDB(String vendorDriverClazz)
  {
    SpiCaseDatabase caseDatabase= (SpiCaseDatabase) caseDBS.get(vendorDriverClazz);
   
    if(caseDatabase==null)
    {
      caseDatabase= (SpiCaseDatabase) caseDBS.get(WILLOW_DRIVER_CLASS);
    }
    return caseDatabase;   
  }
 
  public final static SpiUserDatabase lookupUserDB(String vendorDriverClazz)
  {
    SpiUserDatabase userDatabase=(SpiUserDatabase) userDBS.get(vendorDriverClazz);
   
    if(userDatabase==null)
    {
      userDatabase=(SpiUserDatabase) userDBS.get(WILLOW_DRIVER_CLASS);
    }
    return userDatabase;
  }
   
  public static void deregisterCaseDB()
  {
    caseDBS.clear();
   
    SpiCaseDatabase caseDatabase=new org.huihoo.workflow.impl.store.spi.SpiCaseDatabaseImpl();
    caseDBS.put(WILLOW_DRIVER_CLASS, caseDatabase);
  }
 
 
  public static void deregisterUserDB()
  {
    userDBS.clear();
   
    SpiUserDatabase userDatabase=new org.huihoo.workflow.impl.store.spi.SpiUserDatabaseImpl_RT();       
    userDBS.put(WILLOW_DRIVER_CLASS, userDatabase);
  }
 
  public static void deregisterCaseDB(String vendorDriverClazz)
  {
    caseDBS.remove(vendorDriverClazz);
  }
 
  public static void deregisterUserDB(String vendorDriverClazz)
  {
    userDBS.remove(vendorDriverClazz);
  }
 
  public static void registerCaseDB(String vendorDriverClazz,SpiCaseDatabase caseDatabase)
  {
    caseDBS.put(vendorDriverClazz, caseDatabase);
  }
 
  public static void registerUserDB(String vendorDriverClazz,SpiUserDatabase userDatabase)
  {
    userDBS.put(vendorDriverClazz, userDatabase);
  }
 
  private static void loadOnStartup()
  {
    caseDBS.setFast(false);   
    deregisterCaseDB();
    caseDBS.setFast(true);
   
    userDBS.setFast(false);
    deregisterUserDB();
    userDBS.setFast(true);
  }
}
TOP

Related Classes of org.huihoo.workflow.impl.store.DatabaseRegistry

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.