亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sqlinterfacefactory.java

?? JDBF是一個實現o/r mapping 的軟件
?? JAVA
字號:
/*
 * 23/01/2003 - 11:56:11
 *
 * $RCSfile: SqlInterfaceFactory.java,v $ - JDBF Object Relational mapping system
 * Copyright (C) 2002 JDBF Development Team
 * 
 * http://jdbf.sourceforge.net
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

 /*

 $Id: SqlInterfaceFactory.java,v 1.4 2004/05/20 22:41:55 gmartone Exp $

*/
package org.jdbf.engine.sql;

import java.util.ArrayList;
import java.util.logging.Logger;
import java.util.logging.Level;

import org.jdbf.engine.mapping.MappingException;
import org.jdbf.castor.Messages;


/**
 * <code>SqlIntrerfaceFactory</code> associates a name with an instance of SqlInterface.
 *
 * @author  Giovanni Martone<br<
 * @version $Revision: 1.4 $<br<
 * last changed by $Author: gmartone $
 *
 */
public class SqlInterfaceFactory{

	/**
	 * Class name
	 */
	private static final String CLASS_NAME = "org.jdbf.engine.sql.SqlInterfaceFactory";

	/**
	 *
	 * Logger object
	 */
	private static Logger logger = Logger.getLogger(CLASS_NAME);


	/**
	 *
	 * Creates an empty object
	 *
	 */
	private SqlInterfaceFactory() {
		logger = Logger.getLogger(CLASS_NAME);
	}


	/**
	 * List of <code>SqlInterfaceEntry</code>
	 * holding the instantiated interfaces
	 */
	static ArrayList sqlIfaces = new ArrayList();

	/**
	 * Single entry of SQLInterface
	 */
	static class SqlInterfaceEntry {

		/**
		 * Logic name of SQLInterface
		 */
		String name;

		/**
		 * SQLInterface object
		 */
		SqlInterface sqlInterface;

		/**
		 * Creates a SQLInterfaceEntry
		 */
		SqlInterfaceEntry(String name, SqlInterface sqlInterface) {
	    		this.name = name;
	    		this.sqlInterface = sqlInterface;
		}
	}


	/**
	 * Interface that creates the SQLInterface object
	 */
	static interface SqlInterfaceMaker {
		SqlInterface create();
	}

	/** the list of sql interfaces */
	private static SqlInterfaceMaker[] sqlInterfaces =
		new SqlInterfaceMaker[] {
	    		new SqlInterfaceMaker() {

				public SqlInterface create() {
					return new SqlInterface();
		    		}

				public String toString() {
					return "generic";
		    		}
		},
	    	new SqlInterfaceMaker() {

				public SqlInterface create() {
					return new HsqlInterface();
		    		}

				public String toString() {
					return "hsql";
		    		}
		},
	    	new SqlInterfaceMaker() {

				public SqlInterface create() {
					return new PostgreSQLInterface();
		    		}

				public String toString() {
					return "postgres";
		    		}
		},
	    	new SqlInterfaceMaker() {

				public SqlInterface create() {
					return new SqlServerInterface();
		    		}

				public String toString() {
					return "sqlserver";
		    		}
		},
	    	new SqlInterfaceMaker() {

				public SqlInterface create() {
					return new OracleInterface();
		    		}

				public String toString() {
					return "oracle";
		    		}
		},
	    	new SqlInterfaceMaker() {
		    		public SqlInterface create() {
					return new MySQLInterface();
		    		}

				public String toString() {
					return "mysql";
		    		}
		},
	    	new SqlInterfaceMaker() {

				public SqlInterface create() {
					return new SybaseInterface();
		    		}

				public String toString() {
					return "sybase";
		    		}
		},
	    	new SqlInterfaceMaker() {

				public SqlInterface create() {
					return new InterbaseInterface();
		    		}

				public String toString() {
					return "interbase";
		    		}
		},
	    	new SqlInterfaceMaker() {

				public SqlInterface create() {
					return new InformixInterface();
		    		}

				public String toString() {
					return "informix";
		    		}
		}
	};


	/**
	 * Adds a <code>SqlInterface</code> to the list of
	 * instantiated interfaces.
	 *
	 * @param the short name of the <code>SqlInterface</code>
	 * @return SqlInterface added to the list
	 * @throws MappingException
	 */
	private static SqlInterface addSqlInterface(String name)throws MappingException{
		logger.log(Level.FINEST,Messages.format(
				"SQLInterfaceFactory.addInterface",name));
		SqlInterface sqlIface = null;
		for (int i=0; i<sqlInterfaces.length; i++) {
	    		if (name.equals(sqlInterfaces[i].toString())) {
				sqlIface = sqlInterfaces[i].create();
				sqlIfaces.add(new SqlInterfaceEntry(
						sqlInterfaces[i].toString(),
						sqlIface));
				logger.log(Level.FINEST,Messages.format(
					"SQLInterfaceFactory.interfaceAdded",
					name));
				return sqlIface;
	    		}
		}
		return null;
	}


	/**
	 * Return  an <code>SqlInterface</code> for the given
	 * class name.
	 *
	 * @param the short name of the <code>SqlInterface</code>
	 * @return SqlInterface for the given
	 * class name.
	 * @throws MappingException
	 */
	private static SqlInterface getSqlInterfaceIntern(String name)throws MappingException{
		logger.log(Level.FINEST,Messages.format(
				"SQLInterfaceFactory.getInterface",name));
		SqlInterfaceEntry entry = null;
		int size = sqlIfaces.size();
		for (int i=0; i<size; i++) {
	    		entry = (SqlInterfaceEntry)sqlIfaces.get(i);
	    		if (entry.name.equals(name))
				return entry.sqlInterface;
		}
		logger.log(Level.FINEST,Messages.format(
				"SQLInterfaceFactory.notExistInterface",name));
		return null;
	}


	/**
	 * Return the SqlInterface specified in name
	 *
	 * @param name of the sql interface
	 * @return SqlInterface for the given name
	 * @throws MappingException
	 */
	public synchronized static SqlInterface getSqlInterface(String name)
		throws MappingException{
		
		String low = name.toLowerCase();
		SqlInterface sqlIface = getSqlInterfaceIntern(low);
		if (sqlIface != null)
	    		return sqlIface;

		sqlIface = addSqlInterface(low);
		if (sqlIface != null)
	    		return sqlIface;

		logger.throwing(CLASS_NAME,"getSqlInterface", 
			new MappingException("mapping.sqlIfaceNotFound", name));
		//return null;
		throw new MappingException("mapping.sqlIfaceNotFound", name);

    }
}

//-------------------------------------------------------------------

/*
  $Log: SqlInterfaceFactory.java,v $
  Revision 1.4  2004/05/20 22:41:55  gmartone
  Changed for task 99073 (Coverage Javadocs)

*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷av久久久久久久| 欧美午夜一区二区| 午夜电影一区二区| 国产欧美精品在线观看| 制服丝袜av成人在线看| 色综合欧美在线视频区| 国产盗摄一区二区三区| 亚洲线精品一区二区三区| 国产亚洲精品超碰| 日韩三级伦理片妻子的秘密按摩| 成人av电影观看| 国产综合久久久久久久久久久久| 日韩电影免费在线观看网站| 一区二区三区在线免费观看| 国产精品乱码久久久久久| 精品乱码亚洲一区二区不卡| 3d动漫精品啪啪| 56国语精品自产拍在线观看| 在线观看视频一区二区 | 成人91在线观看| 丰满少妇久久久久久久| 久久综合综合久久综合| 国产在线播放一区| 国产精品综合视频| 成人动漫精品一区二区| 99re热视频这里只精品| 在线看不卡av| 欧美精品自拍偷拍动漫精品| 欧美日韩国产精品自在自线| 欧美日韩中字一区| 欧美一区国产二区| 精品国产亚洲在线| 亚洲无人区一区| 国产专区综合网| 日韩综合小视频| 最新高清无码专区| 欧美极品美女视频| 26uuu亚洲综合色欧美| 欧美国产日韩一二三区| 91极品美女在线| 欧美日韩久久久| 久久久久久久久蜜桃| 亚洲国产成人在线| 艳妇臀荡乳欲伦亚洲一区| 日韩精品一二三| 成人动漫av在线| 欧美美女一区二区在线观看| 久久香蕉国产线看观看99| 欧美韩国日本不卡| 一二三区精品视频| 国内精品久久久久影院色| 夫妻av一区二区| 4438x亚洲最大成人网| 日本一区二区三区四区在线视频 | 国产精品123| 欧美一区二区久久| 自拍av一区二区三区| 国产又粗又猛又爽又黄91精品| 一本色道久久加勒比精品| 久久蜜臀精品av| 蜜桃av一区二区| 91精品欧美福利在线观看| 亚洲女同一区二区| 国产91富婆露脸刺激对白| 精品免费一区二区三区| 午夜精品久久久久久久蜜桃app| av在线不卡免费看| 国产婷婷色一区二区三区在线| 日本特黄久久久高潮| 欧美私模裸体表演在线观看| 中文在线一区二区| 粉嫩aⅴ一区二区三区四区五区| 欧美成人性福生活免费看| 蜜桃视频一区二区三区在线观看| 在线视频中文字幕一区二区| 亚洲另类中文字| 欧美优质美女网站| 午夜电影久久久| 日韩欧美一区二区视频| 久久99久久久久| 久久久久97国产精华液好用吗| 国产一区欧美一区| 国产精品免费久久| aaa欧美色吧激情视频| 一区二区三区免费| 欧美一区二区视频在线观看 | 国产精品一区二区在线播放| 欧美大胆一级视频| 国产一区免费电影| 亚洲三级理论片| 日韩三级免费观看| av一本久道久久综合久久鬼色| 亚洲伊人色欲综合网| 欧美日韩精品综合在线| 国产伦精品一区二区三区免费 | 久久网站最新地址| 91啪九色porn原创视频在线观看| 视频一区在线播放| 国产午夜精品一区二区三区四区| 成人午夜激情在线| 日日骚欧美日韩| 亚洲视频电影在线| 日韩视频中午一区| 欧美午夜电影网| 成人一区二区在线观看| 蜜乳av一区二区三区| 亚洲男人的天堂网| 久久亚洲欧美国产精品乐播 | 久久久久免费观看| 欧美精品三级在线观看| 成人av在线播放网站| 麻豆精品在线播放| 亚洲久本草在线中文字幕| 26uuu久久天堂性欧美| 欧美一级二级三级乱码| 欧美性猛片xxxx免费看久爱| 成人激情开心网| 国产精品99久久久久| 精品影院一区二区久久久| 午夜欧美在线一二页| 国产真实乱对白精彩久久| 国产精品天美传媒| 色婷婷亚洲精品| 国内精品免费在线观看| 一区二区在线观看视频在线观看| 欧美性一二三区| 豆国产96在线|亚洲| 麻豆精品在线观看| 久久精品99国产国产精| 日本强好片久久久久久aaa| 日韩国产精品91| 九九九久久久精品| 粉嫩高潮美女一区二区三区| 国产精品 欧美精品| 国产成人精品三级| 91在线免费看| 欧美区在线观看| 337p粉嫩大胆噜噜噜噜噜91av| 国产日韩精品一区二区三区| 亚洲综合视频在线| 日本伊人色综合网| 另类小说一区二区三区| 国产999精品久久久久久| 欧美中文字幕一区| 欧美一级夜夜爽| 国产精品久久久久影院亚瑟 | 欧美一区二区三区免费视频| 精品国产一二三| 亚洲国产毛片aaaaa无费看| 偷窥国产亚洲免费视频 | 国产精品一区一区三区| 91看片淫黄大片一级在线观看| 欧美精品在欧美一区二区少妇| 精品国产乱码久久久久久久 | 欧美久久久久免费| 亚洲欧美在线视频观看| 亚洲成年人影院| heyzo一本久久综合| 日韩欧美一级二级| 亚洲综合色网站| 懂色av中文字幕一区二区三区| 欧美日韩视频在线观看一区二区三区| 欧美成人三级在线| 青青草91视频| 欧美理论电影在线| 亚洲五月六月丁香激情| 波多野结衣中文字幕一区二区三区| 欧美另类久久久品| 亚洲午夜在线电影| 免费观看在线综合| 欧美久久久久免费| 亚洲风情在线资源站| 色婷婷综合五月| 一区二区三区蜜桃| 91免费在线视频观看| 中文字幕中文乱码欧美一区二区 | 狠狠色综合色综合网络| 欧美大片在线观看一区二区| 亚洲成a天堂v人片| 777色狠狠一区二区三区| 亚洲福利一区二区| 欧美一区二区三区男人的天堂| 亚洲国产另类av| 精品少妇一区二区三区在线播放 | 一区二区三区精密机械公司| 91免费看`日韩一区二区| 亚洲精品国产成人久久av盗摄| 在线免费观看一区| 麻豆成人免费电影| 一区二区三区四区亚洲| 欧美精品久久一区| 国产99久久久精品| 亚洲国产视频a| 国产色91在线| 欧美日韩国产欧美日美国产精品| 蜜桃视频一区二区三区 | 亚洲日本在线天堂| 日韩一区二区三区视频在线观看| 国产v综合v亚洲欧| 三级在线观看一区二区|