openGionopenGion
5.5.0.1

org.opengion.hayabusa.io
クラス AbstractTableReader

java.lang.Object
  上位を拡張 org.opengion.hayabusa.io.AbstractTableReader
すべての実装されたインタフェース:
TableReader
直系の既知のサブクラス:
TableReader_Default, TableReader_JExcel

public abstract class AbstractTableReader
extends java.lang.Object
implements TableReader

指定の区切り記号(初期値:タブ区切り)ファイルの読み取りクラスです。 名前,データの入力部のみオーバーライドすれば,各種入力フォーマットに合わせた サブクラスを実現する事が可能です。

機能階層
ファイル入力
バージョン
4.0
作成者
Kazuhiko Hasegawa
導入されたバージョン:
JDK5.0,

フィールドの概要
protected  java.lang.String columns
           
protected  DBColumn[] dbColumn
           
protected  DBTableModel table
           
 
インタフェース org.opengion.hayabusa.io.TableReader から継承されたフィールド
TAB_SEPARATOR
 
コンストラクタの概要
AbstractTableReader()
           
 
メソッドの概要
 DBTableModel getDBTableModel()
          内部の DBTableModel を返します。
protected  java.lang.String getEncode()
          読み取り元ファイルのエンコード文字列を取得します。
 int getMaxRowCount()
          DBTableModelのデータとして登録する最大件数をこの値に設定します。
 java.lang.String getSeparator()
          データを書き込む場合の,区切り文字を返します。
 int getSkipRowCount()
          データの読み始めの初期値を取得します。
 boolean isExcel()
          このクラスが、EXCEL対応機能を持っているかどうかを返します。
protected  boolean isUseNumber()
          行番号情報を、使用している(true)/していない(false)を返します。
protected  java.lang.String[] readData(java.lang.String data, int clmSize)
          BufferedReader より読み込んだ1行のデータを テーブルモデルに セットするように分割します なお、読込みは,NAME項目分を読み込みます。
abstract  void readDBTable()
          DBTableModel から 各形式のデータを作成して,BufferedReader より読み取ります。
abstract  void readDBTable(java.io.BufferedReader reader)
          DBTableModel から 各形式のデータを作成して,BufferedReader より読み取ります。
 void setColumns(java.lang.String clms)
          読み取り元ファイルのカラム列を、外部(タグ)より指定します。
 void setEncode(java.lang.String enc)
          読み取り元ファイルのエンコード文字列を指定します。
 void setFilename(java.lang.String filename)
          読み取り元ファイル名をセットします。
 void setMaxRowCount(int maxRowCount)
          DBTableModelのデータとして登録する最大件数をこの値に設定します。
 void setResourceManager(ResourceManager resource)
          リソースマネージャーをセットします。
 void setSeparator(java.lang.String sep)
          データを読み込む場合の,区切り文字をセットします。
 void setSheetName(java.lang.String sheetName)
          DBTableModelのデータとして読み込むときのシート名を設定します。
 void setSkipRowCount(int count)
          データの読み飛ばし件数を設定します。
protected  void setTableColumnValues(java.lang.String[] values)
          DBTableModel オブジェクトに、1行分のデータを追加します。
protected  void setTableDBColumn(java.lang.String[] names)
          DBColumn オブジェクトをDBTable に設定します。
 void setUseNumber(boolean useNumber)
          行番号情報を、使用している(true)/していない(false)を指定します。
 void setUseRenderer(boolean useRenderer)
          読取処理でラベルをコードリソースに逆変換を行うかどうかを指定します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

table

protected DBTableModel table

dbColumn

protected DBColumn[] dbColumn

columns

protected java.lang.String columns
コンストラクタの詳細

AbstractTableReader

public AbstractTableReader()
メソッドの詳細

readDBTable

public abstract void readDBTable()
DBTableModel から 各形式のデータを作成して,BufferedReader より読み取ります。 コメント/空行を除き、最初の行は、必ず項目名が必要です。 それ以降は、コメント/空行を除き、データとして読み込んでいきます。 このメソッドは、EXCEL 読み込み時に使用します。

定義:
インタフェース TableReader 内の readDBTable
関連項目:
isExcel()

readDBTable

public abstract void readDBTable(java.io.BufferedReader reader)
DBTableModel から 各形式のデータを作成して,BufferedReader より読み取ります。 コメント/空行を除き、最初の行は、必ず項目名が必要です。 それ以降は、コメント/空行を除き、データとして読み込んでいきます。

定義:
インタフェース TableReader 内の readDBTable
パラメータ:
reader - BufferedReader

setResourceManager

public void setResourceManager(ResourceManager resource)
リソースマネージャーをセットします。 これは、言語(ロケール)に応じた DBColumn をあらかじめ設定しておく為に 必要です。 リソースマネージャーが設定されていない、または、所定のキーの DBColumn が リソースに存在しない場合は、内部で DBColumn オブジェクトを作成します。

定義:
インタフェース TableReader 内の setResourceManager
パラメータ:
resource - リソースマネージャー
変更履歴:
4.0.0 (2005/01/31) lang ⇒ ResourceManager へ変更

setTableDBColumn

protected void setTableDBColumn(java.lang.String[] names)
DBColumn オブジェクトをDBTable に設定します。

パラメータ:
names - String[]
変更履歴:
3.5.4.2 (2003/12/15) private を protected に変更。
3.5.4.5 (2004/01/23) DBColumn 配列に値をセットします。
5.2.1.0 (2010/10/01) useRenderer対応(コードリソース毎のラベル逆引き)

setTableColumnValues

protected void setTableColumnValues(java.lang.String[] values)
DBTableModel オブジェクトに、1行分のデータを追加します。 これ自体は、メソッドの共通化による 拡張をしやすくするために用意しました。

パラメータ:
values - String[]
変更履歴:
5.2.1.0 (2010/10/01) 新規作成

readData

protected java.lang.String[] readData(java.lang.String data,
                                      int clmSize)
BufferedReader より読み込んだ1行のデータを テーブルモデルに セットするように分割します なお、読込みは,NAME項目分を読み込みます。データ件数が少ない場合は、 "" をセットしておきます。

パラメータ:
data - String
clmSize - int
戻り値:
String[]
変更履歴:
3.3.3.1 (2003/07/18) ファイルリード/ライト時に後ろスペースの除去を行います。
3.7.0.5 (2005/04/11) useNumber 属性を考慮します。

getDBTableModel

public DBTableModel getDBTableModel()
内部の DBTableModel を返します。

定義:
インタフェース TableReader 内の getDBTableModel
戻り値:
DBTableModel テーブルモデル

setSeparator

public void setSeparator(java.lang.String sep)
データを読み込む場合の,区切り文字をセットします。 なお,このメソッドは,サブクラスによっては,使用しない場合があります。 もし,使用しないサブクラスを作成する場合は, UnsupportedOperationException を throw するように,サブクラスで実装して下さい。

定義:
インタフェース TableReader 内の setSeparator
パラメータ:
sep - 区切り文字
変更履歴:
3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。

getSeparator

public java.lang.String getSeparator()
データを書き込む場合の,区切り文字を返します。

戻り値:
separator 区切り文字

getMaxRowCount

public int getMaxRowCount()
DBTableModelのデータとして登録する最大件数をこの値に設定します。 サーバーのメモリ資源と応答時間の確保の為です。

定義:
インタフェース TableReader 内の getMaxRowCount
戻り値:
最大検索件数

setMaxRowCount

public void setMaxRowCount(int maxRowCount)
DBTableModelのデータとして登録する最大件数をこの値に設定します。 サーバーのメモリ資源と応答時間の確保の為です。

定義:
インタフェース TableReader 内の setMaxRowCount
パラメータ:
maxRowCount - int
変更履歴:
3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。

setSheetName

public void setSheetName(java.lang.String sheetName)
DBTableModelのデータとして読み込むときのシート名を設定します。 デフォルトは、第一シートです。 ※ このクラスでは実装されていません。

定義:
インタフェース TableReader 内の setSheetName
パラメータ:
sheetName - String
変更履歴:
3.5.4.2 (2003/12/15) 新規追加

isExcel

public boolean isExcel()
このクラスが、EXCEL対応機能を持っているかどうかを返します。 EXCEL対応機能とは、シート名のセット、読み込み元ファイルの Fileオブジェクト取得などの、特殊機能です。 本来は、インターフェースを分けるべきと考えますが、taglib クラス等の 関係があり、問い合わせによる条件分岐で対応します。

定義:
インタフェース TableReader 内の isExcel
戻り値:
boolean EXCEL対応機能を持っているかどうか
変更履歴:
3.5.4.3 (2004/01/05) 新規追加

setFilename

public void setFilename(java.lang.String filename)
読み取り元ファイル名をセットします。(DIR + Filename) これは、EXCEL追加機能として実装されています。 ※ このクラスでは実装されていません。

定義:
インタフェース TableReader 内の setFilename
パラメータ:
filename - 読み取り元ファイル名
変更履歴:
3.5.4.3 (2004/01/05) 新規作成

setColumns

public void setColumns(java.lang.String clms)
読み取り元ファイルのカラム列を、外部(タグ)より指定します。 ファイルに記述された #NAME より優先して使用されます。

定義:
インタフェース TableReader 内の setColumns
パラメータ:
clms - 読み取り元ファイルのカラム列(カンマ区切り文字)
変更履歴:
3.5.4.5 (2004/01/23) 新規作成

setEncode

public void setEncode(java.lang.String enc)
読み取り元ファイルのエンコード文字列を指定します。 ファイルは、BufferedReader で受け取る為、本来は、エンコードは不要ですが、 固定長ファイルの読み取り時のバイトコード分割時に、指定のエンコードで 分割する必要があります。(例えば、半角文字は、Shift_JIS では、1バイト)

定義:
インタフェース TableReader 内の setEncode
パラメータ:
enc - ファイルのエンコード文字列
変更履歴:
3.5.4.5 (2004/01/23) 新規作成

getEncode

protected java.lang.String getEncode()
読み取り元ファイルのエンコード文字列を取得します。 ファイルは、BufferedReader で受け取る為、本来は、エンコードは不要ですが、 固定長ファイルの読み取り時のバイトコード分割時に、指定のエンコードで 分割する必要があります。(例えば、半角文字は、Shift_JIS では、1バイト)

戻り値:
String ファイルのエンコード文字列
変更履歴:
3.5.4.5 (2004/01/23) 新規作成

setUseNumber

public void setUseNumber(boolean useNumber)
行番号情報を、使用している(true)/していない(false)を指定します。 通常のフォーマットでは、各行の先頭に行番号が出力されています。 読み取り時に、#NAME 属性を使用する場合は、この行番号を無視しています。 #NAME 属性を使用せず、columns 属性でカラム名を指定する場合(他システムの 出力ファイルを読み取るケース等)では、行番号も存在しないケースがあり、 その様な場合に、useNumber="false" を指定すれば、データの最初から読み取り始めます。 この場合、出力データのカラムの並び順が変更された場合、columns 属性も 指定しなおす必要がありますので、できるだけ、#NAME 属性を使用するように してください。 なお、EXCEL 入力には、この設定は適用されません。(暫定対応) デフォルトは、true(使用する) です。

定義:
インタフェース TableReader 内の setUseNumber
パラメータ:
useNumber - boolean 行番号情報を、使用している(true)/していない(false)を指定
変更履歴:
3.7.0.5 (2005/04/11) 新規追加

getSkipRowCount

public int getSkipRowCount()
データの読み始めの初期値を取得します。 TAB区切りテキストやEXCEL等のデータの読み始めの初期値を指定します。 ファイルの先頭行が、0行としてカウントしますので、設定値は、読み飛ばす 件数になります。(1と指定すると、1件読み飛ばし、2行目から読み込みます。) 読み飛ばしは、コメント行などは、無視しますので、実際の行数分読み飛ばします。 #NAME属性や、columns 属性は、有効です。

戻り値:
int skipRowCount 読み始めの初期値
変更履歴:
5.1.6.0 (2010/05/01) 新規作成

setSkipRowCount

public void setSkipRowCount(int count)
データの読み飛ばし件数を設定します。 TAB区切りテキストやEXCEL等のデータの読み始めの初期値を指定します。 ファイルの先頭行が、0行としてカウントしますので、設定値は、読み飛ばす 件数になります。(1と指定すると、1件読み飛ばし、2行目から読み込みます。) 読み飛ばしは、コメント行などは、無視しますので、実際の行数分読み飛ばします。 #NAME属性や、columns 属性は、有効です。

定義:
インタフェース TableReader 内の setSkipRowCount
パラメータ:
count - 読み始めの初期値
変更履歴:
5.1.6.0 (2010/05/01) 新規作成

setUseRenderer

public void setUseRenderer(boolean useRenderer)
読取処理でラベルをコードリソースに逆変換を行うかどうかを指定します。 TableWriter_Renderer 系のクラスで出力した場合は、コードリソースがラベルで出力されます。 そのファイルを読み取ると、当然、エラーになります。 ここでは、コードリソースのカラムに対して、ラベルからコードを求める逆変換を行うことで、 Renderer 系で出力したファイルを取り込むことができるようにします。 ここでは、TableWriter 系と同様に、TableReader_Renderer 系のクラスを作るのではなく、 属性値のフラグで、制御します。 将来的には、TableWriter 系も廃止して、同様のフラグで制御するように変更する予定です。

定義:
インタフェース TableReader 内の setUseRenderer
パラメータ:
useRenderer - boolean コードリソースのラベル変換を行うかどうかを指定
変更履歴:
5.2.1.0 (2010/10/01) 新規作成

isUseNumber

protected boolean isUseNumber()
行番号情報を、使用している(true)/していない(false)を返します。 通常のフォーマットでは、各行の先頭に行番号が出力されています。 読み取り時に、#NAME 属性を使用する場合は、この行番号を無視しています。 #NAME 属性を使用せず、columns 属性でカラム名を指定する場合(他システムの 出力ファイルを読み取るケース等)では、行番号も存在しないケースがあり、 その様な場合に、useNumber="false" を指定すれば、データの最初から読み取り始めます。 この場合、出力データのカラムの並び順が変更された場合、columns 属性も 指定しなおす必要がありますので、できるだけ、#NAME 属性を使用するように してください。 なお、EXCEL 入力には、この設定は適用されません。(暫定対応) デフォルトは、true(使用する) です。

戻り値:
useNo 行番号情報を、使用している(true)/していない(false)を指定
変更履歴:
3.7.0.5 (2005/04/11) 新規追加
4.0.0 (2007/07/20) メソッド名変更(getUseNumber() ⇒ isUseNumber())

openGion 5.5.0.1

Webアプリケーションフレームワーク openGion
SourceForge.JPCopyright (c) 2009 The openGion Project.