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 }