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.DataModel; 019 020 /** 021 * javax.swing.table.TableModel インターフェースを継承した??タベ?ス??をTableModel??にマッピングするのに利用します? 022 * 023 * @og.group ??ブル管? 024 * 025 * @version 4.0 026 * @author Kazuhiko Hasegawa 027 * @since JDK5.0, 028 */ 029 public interface DBTableModel extends DataModel<String> { 030 031 /** 032 * 行指定?書込み許可を与えます? 033 * 具体的には,チェ?ボックスの表示/非表示を指定します? 034 * これ?true の場合?,書込み許可です?(チェ?ボックスを表示) 035 * false の場合?,書込み不許可(チェ?ボックスは表示されません? 036 * 行毎に書込み許可/不許可を指定する?合?,?カラ?に writable 037 * カラ?用意して true/false を指定します? 038 * こ? writable カラ?の論理積により?的にチェ?ボックスの 039 * 表示の ON/OFF が決まります? 040 * 041 * こ??ォルト?は、true に設定されて?す? 042 * 043 */ 044 static final boolean DEFAULT_WRITABLE = true; 045 046 /** 047 * 行指定用のチェ?ボックスに対して初期値?選択済みにするか? 048 * 非選択済みにするか??ォルト?を指定します? 049 * 050 * こ??ォルト?は、false に設定されて?す? 051 * 052 */ 053 static final boolean DEFAULT_CHECKED = false; 054 055 /** 056 * 変更されたタイ?追? 057 */ 058 static final String INSERT_TYPE = "A"; 059 060 /** 061 * 変更されたタイ?変更) 062 */ 063 static final String UPDATE_TYPE = "C"; 064 065 /** 066 * 変更されたタイ?削除) 067 */ 068 static final String DELETE_TYPE = "D"; 069 070 /** 071 * こ?オブジェクトを初期化します? 072 * ??引数???配?を作?します? 073 * 具体的には,DBColumn の数を指定することになります? 074 * 075 * @param columnCount カラ? 076 */ 077 void init( int columnCount ) ; 078 079 /** 080 * こ?オブジェクトをヘッ??部?コピ?し???タを?期化します? 081 * これは、カラ?どヘッ??系の??は、?と同じオブジェクトを共有し? 082 * ??タ部のみ空にした DBTableModel を作?することを意味します? 083 * こ?際?consistencyKey も??します?で、整合?は崩れな??? 084 * ??タ登録を行う?があります? 085 * 086 * @og.rev 4.0.0.0 (2007/06/28) 新規作? 087 * 088 * @return DBTableModelオブジェク? 089 */ 090 DBTableModel newModel(); 091 092 /** 093 * カラ??ラベル名を返します? 094 * カラ???名に対して,見える形の??を返します? 095 * ?には,リソースバンドルと?せて,?ロケール毎にラベル? 096 * ?えます? 097 * セ?され?DBColumn#getLabel( int ) の値が返されます? 098 * 099 * @param column カラ?号 100 * 101 * @return カラ??ラベル? 102 */ 103 String getColumnLabel( int column ) ; 104 105 /** 106 * row および column にあるセルの属?値をStringに変換して返します? 107 * 108 * @param row 値が参照される? 109 * @param column 値が参照される? 110 * 111 * @return ?されたセルの値 String 112 * 113 */ 114 // String getValue(int row, int column) ; 115 116 /** 117 * row および columnName にあるセルの属?値をStringに変換して返します? 118 * 119 * @param aRow 値が参照される? 120 * @param columnName 値が参照されるカラ? 121 * 122 * @return ?されたセルの値 String 123 * @see #getValue( int , int ) 124 */ 125 String getValue( final int aRow, final String columnName ); 126 127 /** 128 * row にあるセルの属?値を?列で返します? 129 * 130 * @param row 値が参照される? 131 * 132 * @return ?されたセルの属?値 String[] 133 * 134 */ 135 // String[] getValues( int row ) ; 136 137 /** 138 * カラ?配?を返します? 139 * 140 * @og.rev 3.0.0.0 (2002/12/25) カラ?配?を取得するメソ?を追?る? 141 * 142 * @return nm String[] 143 */ 144 // String[] getNames() ; 145 146 /** 147 * カラ??にカラ?ブジェクトを割り当てます? 148 * カラ?ブジェクト??ラベル?ー?ど?そのカラ?報? 149 * 保持したオブジェクトです? 150 * 151 * @param dbColumn カラ?ブジェク? 152 * @param clm ヘッ??を適応するカラ?? 153 */ 154 void setDBColumn( int dbColumn, DBColumn clm ) ; 155 156 /** 157 * カラ??のカラ?ブジェクトを返します? 158 * カラ?ブジェクト??ラベル?ー?ど?そのカラ?報? 159 * 保持したオブジェクトです? 160 * 161 * @param clm ヘッ??を適応するカラ?? 162 * 163 * @return DBColumnカラ?ブジェク? 164 */ 165 DBColumn getDBColumn( int clm ) ; 166 167 /** 168 * カラ?ブジェクト?列を返します? 169 * カラ?ブジェクト??ラベル?ー?ど?そのカラ?報? 170 * 保持したオブジェクトです? 171 * 172 * @og.rev 4.0.0.0 (2005/12/31) 新規追? 173 * 174 * @return カラ?ブジェクト?? 175 */ 176 DBColumn[] getDBColumns() ; 177 178 /** 179 * カラ?をもとに、そのカラ?号を返します? 180 * カラ?が存在しな??合?? HybsSystemException ?throw します? 181 * 182 * @param columnName カラ? 183 * 184 * @return カラ?号 185 */ 186 // int getColumnNo( String columnName ) ; 187 188 /** 189 * カラ?をもとに、そのカラ?号を返します? 190 * useThrow が?true の場合?、カラ?が存在しな??合?? HybsSystemException ? 191 * throw します?useThrow が?false の場合?、カラ?が存在しな??合?? -1 を返します? 192 * 193 * @og.rev 4.0.0.0 (2005/12/31) 新規追? 194 * 195 * @param columnName カラ? 196 * @param useThrow カラ?が存在しな??合に、Exception ?throw するかど? 197 * 198 * @return カラ?号 199 */ 200 int getColumnNo( final String columnName,final boolean useThrow ) ; 201 202 /** 203 * 変更済みフラグを?に戻します? 204 * 205 * ?には,??タベ?スに??ブルモ?を登録するタイミングで? 206 * 変更済みフラグを?に戻します? 207 * 208 */ 209 void resetModify() ; 210 211 /** 212 * 変更??タを?期?(??取り込んだ状?に戻します? 213 * 214 * 変更タイ?追?変更/削除)に応じて、??れます? 215 * 追?は、追?れた行を削除します? 216 * 変更時?、変更された行を?戻します? 217 * 削除時?、削除フラグを解除します? 218 * それ以外?場?変更されて????は、なにもしません? 219 * 220 * @param row 処?戻?取り消す)? 221 */ 222 void resetRow( int row ) ; 223 224 /** 225 * row 単位に変更されたタイ?追?変更/削除)を返します? 226 * 227 * @param row 値が参照される? 228 * 229 * @return 変更されたタイプ?値 String 230 * 231 */ 232 String getModifyType(int row) ; 233 234 /** 235 * row 単位に変更タイ?追?変更/削除)をセ?します? 236 * こ?メソ?では、データのバックア??は取りません? 237 * タイプ?始めに?登録するとそれ以降に変更はかかりません? 238 * なにも変更されて???合?, ""(ゼロストリング)の状態です? 239 * 240 * @param row 値が参照される? 241 * @param modType 変更タイ?追?変更/削除) 242 * 243 */ 244 void setModifyType( int row,String modType ) ; 245 246 /** 247 * 書込み許可を返します? 248 * 249 * @param aRow 値が参照される? 250 * 251 * @return 書込み可能(true)?不可能(false) 252 */ 253 boolean isRowWritable( int aRow ) ; 254 255 /** 256 * 書き込み可能な?rowWritable == true)のチェ?ボックスに対して 257 * 初期値?選択済みか?非選択済みかを返します? 258 * 259 * @param row 値が参照される? 260 * 261 * @return 初期値チェ?ON(true)?チェ?OFF(false) 262 */ 263 boolean isRowChecked( int row ) ; 264 265 /** 266 * 検索結果?オーバ?フローしたかど?をチェ?します? 267 * Query で検索した場合に、DB_MAX_ROW_COUNT また?、Query.setMaxRowCount( int maxRowCount ) 268 * で?された値よりも検索結果が多い場合に、DBTableModel は、?の設定?までの 269 * ??タを取り込みます?そ?ときに、オーバ?フローフラグを立てておくことで、最大件数? 270 * オーバ?したかど?を判断します? 271 * 272 * @return オーバ?フロー(true)?正常(false) 273 */ 274 boolean isOverflow() ; 275 276 /** 277 * 検索されたDBTableModelが登録時に同?ど?を判断する為の 整合?キーを取得します? 278 * 279 * ここでの整合?は、同??ョン(ユーザー)毎にユニ?クかど?で対応します? 280 * ?環??のセ?ョン?での整合?は、確保できません? 281 * 整合?キー は、オブジェクト作?時刻としますが、?変更される可能性があります? 282 * 283 * @og.rev 3.5.5.5 (2004/04/23) 新規追? 284 * 285 * @return 整合?キー(オブジェクト?作?時刻) 286 */ 287 String getConsistencyKey() ; 288 289 // ======================================================================= 290 // 291 // TableModel Interface と共有して?メソ?を?独自に再定義します? 292 // 293 // ======================================================================= 294 295 /** 296 * ??タ??ブル??行?数を返します? 297 * 298 * @og.rev 3.5.3.1 (2003/10/31) インターフェースの見直しにより、追? 299 * 300 * @return モ?の行数 301 */ 302 int getRowCount() ; 303 304 /** 305 * ??タ??ブル??列?数を返します? 306 * 307 * @og.rev 3.5.3.1 (2003/10/31) インターフェースの見直しにより、追? 308 * 309 * @return モ?の列数 310 */ 311 int getColumnCount() ; 312 313 /** 314 * カラ?を取得します? 315 * 316 * @og.rev 3.5.3.1 (2003/10/31) インターフェースの見直しにより、追? 317 * 318 * @param column ??のカラ?? 0?番目のカラ?? 1、などとする? 319 * 320 * @return カラ? 321 */ 322 String getColumnName(int column) ; 323 324 // ======================================================================= 325 // 326 // DBTableModelImpl.java で定義されて? public メソ?残り全て 327 // 328 // ======================================================================= 329 330 /** 331 * column に対応し?値を登録します? 332 * column には、番号ではなく、ラベルを指定します? 333 * 334 * @og.rev 3.5.6.4 (2004/07/16) interface に新規登録 335 * 336 * @param aRow 値が変更される? 337 * @param columnName 値が変更されるカラ? 338 * @param value 新しい値。null も可 339 * 340 */ 341 void setValue( int aRow, String columnName, String value ) ; 342 343 /** 344 * column および row にあるセルのオブジェクト?を設定します? 345 * value は新しい値です?こ?メソ?は、tableChanged() 通知を生成します? 346 * 347 * @og.rev 3.1.0.0 (2003/03/20) 同期メソ?(synchronized付き)を非同期に変更する? 348 * @og.rev 3.5.3.1 (2003/10/31) インターフェースの見直しにより、private 化する? 349 * @og.rev 4.0.0.0 (2007/05/24) インターフェースの見直しにより、public 化する? 350 * 351 * @param value 新しい値。null も可 352 * @param aRow 値が変更される? 353 * @param aColumn 値が変更される? 354 */ 355 void setValueAt( String value, int aRow, int aColumn ) ; 356 357 /** 358 * 行を削除します? 359 * 物?除ではなく?論理削除です? 360 * ??タを取り込?とは可能です? 361 * 362 * @og.rev 3.5.6.4 (2004/07/16) interface に新規登録 363 * 364 * @param aRow 論理削除される? 365 * 366 */ 367 void rowDelete( int aRow ) ; 368 369 /** 370 * row にあるセルのオブジェクト?を置き換えて、行を削除します? 371 * 物?除ではなく?論理削除です? 372 * 値を置き換えた??タを取り込?とが可能です? 373 * 374 * @og.rev 3.5.6.4 (2004/07/16) interface に新規登録 375 * 376 * @param values 新しい配?値? 377 * @param aRow 論理削除される? 378 * 379 */ 380 void rowDelete( String[] values, int aRow ) ; 381 382 /** 383 * 行を物?除します? 384 * メモリ上で編?る?合に使用しますが,?アプリケーションからの 385 * 使用は、物?除の為,お勧めいたしません? 386 * 387 * @og.rev 3.5.6.4 (2004/07/16) interface に新規登録 388 * 389 * @param aRow 物?除される? 390 * 391 */ 392 void removeValue( int aRow ) ; 393 394 /** 395 * row の下に属?値配?を追?録します? 396 * 397 * @og.rev 3.5.6.4 (2004/07/16) interface に新規登録 398 * 399 * @param values 属?値配? 400 * @param aRow 値が参照される? 401 * 402 */ 403 void addValues( String[] values ,int aRow ) ; 404 405 /** 406 * row の下に属?値配?を追?録します? 407 * isWritableをfalseにした場合?編?可能な状態で追?れます? 408 * 409 * @og.rev 4.3.1.0 (2008/09/04) interface に新規登録 410 * 411 * @param values 属?値配? 412 * @param aRow 値が参照される? 413 * @param isWritable 編?可能な状態で追?るか 414 * 415 */ 416 void addValues( String[] values ,int aRow, boolean isWritable ) ; 417 418 /** 419 * row あるセルの属?値配?を追?録します? 420 * これは,初期登録時?みに使用します? 421 * 422 * @og.rev 3.5.6.4 (2004/07/16) interface に新規登録 423 * 424 * @param values 属?値配? 425 * 426 */ 427 void addColumnValues( String[] values ) ; 428 429 /** 430 * row にあるセルのオブジェクト?を置き換えます? 431 * 432 * @og.rev 3.5.6.4 (2004/07/16) interface に新規登録 433 * 434 * @param values 新しい配?値? 435 * @param aRow 値が変更される? 436 * 437 */ 438 void setValues( String[] values, int aRow ) ; 439 440 /** 441 * 変更済みフラグを?に戻します? 442 * 443 * ?には,??タベ?スに??ブルモ?を登録するタイミングで? 444 * 変更済みフラグを?に戻します? 445 * 446 * @og.rev 3.5.6.4 (2004/07/16) interface に新規登録 447 * 448 * @param aRow 値が参照される? 449 */ 450 void resetModify( int aRow ) ; 451 452 /** 453 * 行が書き込み可能かど?をセ?します? 454 * ?ォル?およびなにも設定しな??合?, DEFAULT_WRITABLE ? 455 * 与えられて?す? 456 * これ?true の場合?,書込み許可です?(チェ?ボックスを表示) 457 * false の場合?,書込み不許可(チェ?ボックスは表示されません? 458 * 459 * @og.rev 3.5.6.4 (2004/07/16) interface に新規登録 460 * 461 * @param aRow 値が参照される? 462 * @param rw 書込み可能(true)?不可能(false) 463 */ 464 void setRowWritable( int aRow ,boolean rw ) ; 465 466 /** 467 * 書き込み可能な?rowWritable == true)のチェ?ボックスに対して 468 * 初期値?選択済みにするか?非選択済みにするかを?します? 469 * 470 * @og.rev 3.5.6.4 (2004/07/16) interface に新規登録 471 * 472 * @param aRow 値が参照される? 473 * @param rw チェ?ON(true)?チェ?OFF(false) 474 */ 475 void setRowChecked( int aRow ,boolean rw ) ; 476 477 /** 478 * 行指定?書込み許可を与えます? 479 * 具体的には,チェ?ボックスの表示/非表示を指定します? 480 * これ?true の場合?,書込み許可です?(チェ?ボックスを表示) 481 * false の場合?,書込み不許可(チェ?ボックスは表示されません? 482 * 行毎に書込み許可/不許可を指定する?合?,?カラ?に writable 483 * カラ?用意して true/false を指定します? 484 * こ? writable カラ?の論理積により?的にチェ?ボックスの 485 * 表示の ON/OFF が決まります? 486 * なにも設定しな??合?, ViewForm.DEFAULT_WRITABLE が設定されます? 487 * 488 * @og.rev 3.5.6.4 (2004/07/16) interface に新規登録 489 * 490 * @param rw 書込み可能(true)?不可能(false) 491 */ 492 void setDefaultRowWritable( boolean rw ) ; 493 494 /** 495 * 書き込み可能な?rowWritable == true)のチェ?ボックスに対して 496 * 初期値?選択済みにするか?非選択済みにするかを?します? 497 * 498 * @og.rev 3.5.6.4 (2004/07/16) interface に新規登録 499 * 500 * @param rw 選択状?true)?非選択状?false) 501 */ 502 void setDefaultRowChecked( boolean rw ) ; 503 504 /** 505 * 検索結果?オーバ?フローしたかど?を設定します? 506 * Query で検索した場合に、DB_MAX_ROW_COUNT また?、Query.setMaxRowCount( int maxRowCount ) 507 * で?された値よりも検索結果が多い場合に、DBTableModel は、?の設定?までの 508 * ??タを取り込みます?そ?ときに、オーバ?フローフラグを立てておくことで、最大件数? 509 * オーバ?したかど?を判断します? 510 * 511 * @og.rev 3.5.6.4 (2004/07/16) interface に新規登録 512 * 513 * @param of オーバ?フロー(true)?正常(false) 514 */ 515 void setOverflow( boolean of ) ; 516 517 /** 518 * カラ??にmustタイプ?を割り当てます? 519 * こ?値は、columnCheck 時? nullCheck ?mustAnyCheck の 520 * チェ?対象カラ?して認識されます? 521 * 522 * @og.rev 4.1.2.1 (2008/03/13) interface に新規登録 523 * 524 * @param dbColumn カラ?ブジェク? 525 * @param type mustタイ?must,mustAny) 526 */ 527 void addMustType( int dbColumn, String type ) ; 528 529 /** 530 * mustType="must"時?カラ?を?カンマ区???として返します? 531 * こ?値は、columnCheck 時? nullCheck のチェ?対象カラ?して 532 * 認識されます? 533 * カラ?配?は、ソート済みです? 534 * 535 * @og.rev 4.1.2.1 (2008/03/13) interface に新規登録 536 * 537 * @return mustType="must"時?カラ?配?(ソート済み) 538 */ 539 String[] getMustArray(); 540 541 /** 542 * mustType="mustAny" 他?カラ?を?カンマ区???として返します? 543 * こ?値は、columnCheck 時? mustAnyCheck のチェ?対象カラ?して 544 * 認識されます? 545 * カラ?配?は、ソート済みです? 546 * 547 * @og.rev 4.1.2.1 (2008/03/13) interface に新規登録 548 * 549 * @return mustType="mustAny"時?カラ?配?(ソート済み) 550 */ 551 String[] getMustAnyArray(); 552 }