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.fukurou.model.NativeType;
019 import org.opengion.fukurou.util.ErrorMessage;
020
021 /**
022 * ãƒ??タベã?スのカラãƒ?±žæ?のã�?�¡ã€?�™çš?«–理属æ?を規定する情報を保持してã�?‚‹オブジェクトですã?
023 * こã?インターフェースを実è£?�—たクラスは、カラãƒ??名前、ラベル、桁数ã€?
024 * 種é¡?æ–?—ã?数字ã?日ä»?ã‚?‚¿イãƒ?全角ã?半角ã?大æ–?—ã?小文å?のæƒ??ã‚?
025 * 持ってã�?�¾すã?さらに、そのカラãƒ??表示方æ³?CellRenderer)ã‚??
026 * 編é›?–¹æ³?CellEditor)を静çš?�«割り当てる事が可能ですã?
027 * これらã??Œカラãƒ??静的æƒ??であって、そのカラãƒ?�«対する値を保持したã‚?
028 * å�?‚¢プリケーション毎に変更される情報は持ってã�?�¾せん。すべての画面で
029 * 同ä¸??æƒ??を保持してã�?�¾すã?
030 * ãƒ??タを登録する場合ã?æœ?½Ž限の整合æ?チェãƒ?‚¯は、このクラスを用ã�?�¦
031 * 行いますã?
032 * チェãƒ?‚¯方法ã?、種類やタイプで異なりますが?Œそれらはこã?インターフェース
033 * を実è£?�—たサブクラス毎に異なりますã?
034 *
035 * @og.group ãƒ??タ属æ?
036 *
037 * @version 4.0
038 * @author Kazuhiko Hasegawa
039 * @since JDK5.0,
040 */
041 public interface DBType {
042
043 // 5.1.6.0 (2010/05/01) 初期タイプを XK としますã?
044 static final String DEF_TYPE = "XK" ;
045
046 // 4.1.1.2 (2008/02/28) fukurou.model.NativeTypeに移å‹?
047 // /** NATIVEのåž?[int] の識別コーãƒ?({@value}) */
048 // static final int NATIVE_INT = 0 ;
049 //
050 // /** NATIVEのåž?[long] の識別コーãƒ?({@value}) */
051 // static final int NATIVE_LONG = 1 ;
052 //
053 // /** NATIVEのåž?[double] の識別コーãƒ?({@value}) */
054 // static final int NATIVE_DOUBLE = 2 ;
055 //
056 // /** NATIVEのåž?[String] の識別コーãƒ?({@value}) */
057 // static final int NATIVE_STRING = 3 ;
058 //
059 // /** NATIVEのåž?[Calendar] の識別コーãƒ?({@value}) */
060 // static final int NATIVE_CALENDAR = 4 ;
061
062 /**
063 * NATIVEの型ã?識別コードを返しますã?
064 *
065 * @og.rev 3.5.4.7 (2004/02/06) 新規作æ?
066 * @og.rev 4.1.1.2 (2008/02/28) Enumåž?fukurou.model.NativeType)に変更
067 *
068 * @return NATIVEの型ã?識別コーãƒ?DBType で規å®?
069 * @see org.opengion.fukurou.model.NativeType
070 */
071 NativeType getNativeType() ;
072
073 /**
074 * æ–?—タイプに応じた方法で固定長に変換したæ–?—å?を返しますã?
075 * 例えば?Œå?角ならå?角スペã?スで、数字タイプならゼロ埋めしますã?
076 *
077 * @og.rev 3.5.4.5 (2004/01/23) エンコード指定に変更しますã?
078 *
079 * @param value ?¦?©?¬?¬埋めするæ–?—å?
080 * @param sizeX 整数部åˆ??æ–?—å?の長ã�?
081 * @param sizeY 少数部åˆ??æ–?—å?の長ã�?
082 * @param encode 固定長で変換するæ–?—エンコーãƒ?
083 *
084 * @return ?¦?©?¬?¬埋めした新しいæ–?—å?
085 */
086 String valueFill( String value ,int sizeX ,int sizeY,String encode ) ;
087
088 /**
089 * そã?DBTypeの,ãƒ?ƒ•ォルトã?値(物ç�?š„初期設定å?)を返しますã?
090 *
091 * ä¸?ˆ¬に、文字å?の場合ã?,ゼロストリング"" 数字ã?場合ã? "0" ですã?
092 *
093 * @return 物ç�?š„初期設定å?
094 */
095 String getDefault() ;
096
097 /**
098 * String引数のæ–?—å?を+1した文字å?を返しますã?
099 * これは、英字ã?場å�?A,B,C など)は、B,C,D のように,æœ?µ‚桁ã?æ–?—コードを
100 * ?‹ï¼?しますã?
101 * æ–?—å?が数字タイプã?場合ã?, 数字に変換してã€?1 しますã?(桁上がりもあり)
102 * 混在タイプã?場合ã?,æœ?¾Œã?桁だけを確認して ?‹1しますã?
103 * 引数ã�?null の場合と、ゼロæ–?—å?("")の場合ã?,物ç�?š„初期設定å?(String getDefault())
104 * の値を返しますã?
105 *
106 * @param value String引数
107 *
108 * @return 引数のæ–?—å?を+1した文字å?ã€?
109 */
110 String valueAdd( String value ) ;
111
112 /**
113 * String引数のæ–?—å?に、第?’引数にæŒ?®šã?æ–?—å?(数字ã?日付ç?を加算して返しますã?
114 *
115 * これは、valueAdd( String ) と本質çš?�«は同じ動きをしますが、任意ã?æ–?—å?を加算すã‚?
116 * ため、主として、数字系ã‚?—¥付系の DBType にのみ実è£?�—ますã?
117 * 実è£?�Œなã�??合ã?、UnsupportedOperationException ã‚?throw しますã?
118 *
119 * 第?’引数 がã?null の場合ã?ã€?¼‹ï¼?する valueAdd( String )が呼ばれますã?
120 * これは、å°?�¥çš?�«は、valueAdd( String ) を無くすことを意味しますã?
121 *
122 * @og.rev 5.6.0.3 (2012/01/24) ADD に、引数の値を加算する機è?を追åŠ?�—ますã?
123 *
124 * @param value String引数
125 * @param add åŠ?®—する文字å?(null の場合ã?、従来と同じã€?1 しますã?)
126 *
127 * @return 引数のæ–?—å?第?’引数にæŒ?®šã?æ–?—å?(数字ã?日付ç?を加算した文字å?ã€?
128 * @throws UnsupportedOperationException 実è£?�Œ存在しなã�??å�?
129 */
130 String valueAdd( final String value,final String add ) ;
131
132 /**
133 * エãƒ?‚£ターで編é›?�•れたãƒ??タを登録する場合に、データそã?もã?ã‚?
134 * 変換して、実登録ãƒ??タを作æ?しますã?
135 * 例えば,大æ–?—ã?みのフィールドならã?大æ–?—化しますã?
136 * 実登録ãƒ??タの作æ?は、DBType オブジェクトを利用しますã?で,
137 * これと CellEditor とがアンマッチã?場合ã?、うまくデータ変換
138 * されなã�?�¯能性がありますã?で、注意願いますã?
139 *
140 * @param value (ä¸?ˆ¬に編é›?ƒ‡ータとして登録されたデータ)
141 *
142 * @return 修正後ã?æ–?—å?(ä¸?ˆ¬にãƒ??タベã?スに登録するãƒ??タ)
143 */
144 String valueSet( String value ) ;
145
146 /**
147 * action でæŒ?®šされたコマンドを実行して、å?の変換を行いますã?
148 * oldValue(旧ãƒ??タ)は、å?のDBTableModelに設定されてã�?�Ÿ値ですã?通常はã€?
149 * こã?値を使用してカラãƒ?¯Žに変換を行いますã?newValue(新ãƒ??タ)は、引数で
150 * æŒ?®šされた新しい値ですã?こã?値には、パラメータを指定して変換方法を
151 * 制御することも可能ですã?
152 * æŒ?®šã?アクションがカラãƒ?�§処ç�?�§きなã�??合ã?、エラーになりますã?
153 *
154 * @param action アクションコマンãƒ?
155 * @param oldValue 入力データ(旧ãƒ??タ)
156 * @param newValue 入力データ(新ãƒ??タ)
157 *
158 * @return 実行後ã?ãƒ??タ
159 */
160 String valueAction( String action,String oldValue,String newValue ) ;
161
162 /**
163 * ãƒ??タが登録可能かどã�?�‹をチェãƒ?‚¯しますã?
164 * ãƒ??タがエラーの場合ã?、そのエラーå†?®¹を返しますã?
165 *
166 * @og.rev 3.6.0.0 (2004/09/22) dbType パラメータを引数に追åŠ?
167 * @og.rev 5.2.2.0 (2010/11/01) 厳å¯?�«チェãƒ?‚¯(isStrict=true)するフラグを追åŠ?
168 *
169 * @param key キー
170 * @param value 値
171 * @param sizeX 整数部åˆ??æ–?—å?の長ã�?
172 * @param sizeY 少数部åˆ??æ–?—å?の長ã�?
173 * @param typeParam dbType パラメータ
174 * @param isStrict 厳å¯?�«チェãƒ?‚¯するかどã�?�‹ [true:する/false:標準的]
175 *
176 * @return エラーå†?®¹
177 */
178 // ErrorMessage valueCheck( String key ,String value ,int sizeX ,int sizeY,String typeParam ) ;
179 ErrorMessage valueCheck( String key ,String value ,int sizeX ,int sizeY ,String typeParam ,boolean isStrict ) ;
180 }