001 /*
002 * Copyright (c) 2009 The openGion Project.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
013 * either express or implied. See the License for the specific language
014 * governing permissions and limitations under the License.
015 */
016 package org.opengion.hayabusa.db;
017
018 import org.opengion.hayabusa.common.HybsSystem;
019
020 /**
021 * Queryオブジェクトを取得する為に使用する?ファクトリクラスです?
022 *
023 * Queryオブジェク?の識別ID を?に、QueryFactory.newInstance( String id )
024 * メソ?で?Queryオブジェクトを取得します?
025 *
026 * 実?マッピングの関係か?識別ID は、シス?パラメータ で 定義しま?
027 *
028 * @og.rev 3.6.0.8 (2004/11/19) キャ?ュ()ではなく?オブジェクトを直接生?します?
029 * @og.group ??タ表示
030 * @og.group ??タ編?
031 *
032 * @version 4.0
033 * @author Kazuhiko Hasegawa
034 * @since JDK5.0,
035 */
036 public final class QueryFactory {
037 // 3.1.0.0 (2003/03/20) Hashtable を使用して??で?同期でも構わな??を?HashMap に置換え?
038 /** newInstance() 時??ォルトクラス {@value} */
039 public static final String DEFAULT = "JDBC" ;
040
041 /**
042 * ?ォルトコンストラクターをprivateにして?
043 * オブジェクト?生?をさせな??する?
044 *
045 */
046 private QueryFactory() {
047 }
048
049 /**
050 * 標準的な Queryオブジェク?JDBCQuery)を取得します?
051 * 過去に使用され?Queryオブジェク?はプ?ルから取得されます?
052 * ただし??変数はすべてクリアされます?で??取り出した
053 * オブジェクトを保持した??合??各アプリケーション側で保持して下さ??
054 *
055 * @return Queryオブジェク?
056 */
057 public static Query newInstance() {
058 return newInstance( DEFAULT );
059 }
060
061 /**
062 * 識別id に応じ?Queryオブジェクトを取得します?
063 * 過去に使用され?Queryオブジェク?はプ?ルから取得されます?
064 * ただし??変数はすべてクリアされます?で??取り出した
065 * オブジェクトを保持した??合??各アプリケーション側で保持して下さ??
066 *
067 * @og.rev 3.6.0.8 (2004/11/19) キャ?ュ?。直接生?します?
068 * @og.rev 4.0.0.0 (2005/01/31) キーの?を、Query. から、Query_ に変更します?
069 * @og.rev 5.3.7.0 (2011/07/01) ゼロ???efaultを適用
070 *
071 * @param id Queryインターフェースを実?たサブクラスの識別id
072 *
073 * @return Queryオブジェク?
074 */
075 public static Query newInstance( final String id ) {
076 // String type = ( id == null ) ? DEFAULT : id ;
077 String type = ( id == null || id.length() == 0 ) ? DEFAULT : id ;
078 return (Query)HybsSystem.newInstance( HybsSystem.sys( "Query_" + type ) );
079 }
080
081 /**
082 * Queryオブジェクトをプ?ルに戻します?
083 * newInstance でオブジェクトを取り出す方法によっては、close() する?をなくす
084 * ことができますが、現状はこ?メソ?でオブジェクトをプ?ルに戻してください?
085 * オブジェクトを?個貸し?して?場?close() で戻すとすでに同じキーの
086 * 別のオブジェクトが存在する?そ?場合?,先?オブジェクト?破?れます?
087 *
088 * @og.rev 3.5.6.2 (2004/07/05) メソ?名がまぎらわし?、変更します?
089 * @og.rev 3.6.0.8 (2004/11/19) キャ?ュ??
090 * @og.rev 4.0.0.0 (2005/01/31) Queryの、close() 処?呼び出しておきます?
091 *
092 * @param query Queryオブジェク?
093 */
094 public static void close( final Query query ) {
095 if( query != null ) { query.close(); } // 4.0.0 (2005/01/31)
096 }
097
098 /**
099 * Queryオブジェクトをプ?ルからすべて削除します?
100 * シス?全体を初期化するときや、動作が不安定になったときに行います?
101 * プ?ルの方法?体が,?のキャ?ュ?使?たしかして??,
102 * 実行中でも??でも?ールを?期化できます?
103 *
104 * @og.rev 3.6.0.8 (2004/11/19) キャ?ュ?。メソ?も?します?
105 */
106 public static void clear() {
107 // ここでは処?行いません?
108 }
109 }