パッケージ org.opengion.hayabusa.db

クラス DBColumn


  • public final class DBColumn
    extends Object
    DBType インターフェースを継承した Abstractクラスです。 getRendererValue( String value ) 、getEditorValue( String value ) 、 isValueChack( String ) メソッドを、サブクラスで実装する必要があります。
    導入されたバージョン:
    JDK5.0,
    • コンストラクタの詳細

      • DBColumn

        public DBColumn​(String lang,
                        ColumnData clmData,
                        LabelData lblData,
                        CodeData cdData)
        DBColumnConfig オブジェクトより作成されるコンストラクター すべての情報は、インスタンス作成時に設定します。 このオブジェクトは、1度作成されると変更されることはありません。
        パラメータ:
        lang - 言語
        clmData - カラムデータオブジェクト
        lblData - ラベルデータオブジェクト
        cdData - コードデータオブジェクト
      • DBColumn

        public DBColumn​(DBColumnConfig config)
        DBColumnConfig オブジェクトより作成されるコンストラクター すべての情報は、インスタンス作成時に設定します。 このオブジェクトは、1度作成されると変更されることはありません。
        パラメータ:
        config - DBColumnConfigオブジェクト
    • メソッドの詳細

      • getLang

        public String getLang()
        言語を返します。
        戻り値:
        言語
      • getName

        public String getName()
        カラム名を返します。
        戻り値:
        カラム名
      • getLabel

        public String getLabel()
        カラムのラベル名を返します。
        戻り値:
        カラムのラベル名
      • getShortLabel

        public String getShortLabel()
        カラムのラベル名を返します。
        戻り値:
        カラムのラベル名(名前(短))
      • getLongLabel

        public String getLongLabel()
        カラムのラベル名を返します。
        戻り値:
        カラムのラベル名(名前(長))
      • getDescription

        public String getDescription()
        カラムの概要説明を返します。
        戻り値:
        カラムの概要説明
      • isNumberType

        public boolean isNumberType()
        このカラムが、数値型かどうかを返します。 ColumnDataのgetClassName() の値が、"NUMBER" , "INTEGER" , "DECIMAL" , "INT64" の場合、true:数値型 を返します。
        戻り値:
        カラムが、数値型かどうか
      • isDateType

        public boolean isDateType()
        このカラムが、日付型かどうかを返します。 ColumnDataのgetClassName() の値が、"DATE" , "TIMESTAMP" の場合、true:数値型 を返します。
        戻り値:
        カラムが、日付型かどうか
      • getClassName

        public String getClassName()
        カラムのクラスを文字列にした名称を返します。 内容的には、カラムの className の値と、dbTypeの値をマージした値になります。 さらに、editorAttributesの "class"キーワードの値もマージします。 ただし、この値には、must属性も設定されているため、それだけは除外します。 各種スタイルを表現するのに使用します。
        戻り値:
        カラムのクラスを文字列にした名称(X9,X,など)
        関連項目:
        getDbType()
      • getTotalSize

        public int getTotalSize()
        フィールドのデータ長を返します。 通常は、整数型の文字列とデータ長は同じですが,小数点を表すデータ長は x,y 形式の場合、x + 2 桁で表されます。(マイナス記号と小数点記号) 7,3 は、 xxxx,yyy のフォーマットで、データ長は、9 になります。
        戻り値:
        データ長定義文字列
      • getMaxlength

        public String getMaxlength()
        フィールドの使用桁数を返します。 小数指定の場合は、"7,3" のようなカンマで整数部、小数部を区切った書式になります。 7,3 は、 xxxx,yyy のフォーマットで、整数部4桁、小数部3桁を意味します。
        戻り値:
        使用桁数
      • getSizeX

        public int getSizeX()
        フィールドの整数部のデータ長を返します。 通常は、整数型の文字列とデータ長は同じですが,小数点を表すデータ長は x,y 形式の場合、x - y 桁で表されます。(マイナス記号含まず) 7,3 は、 xxxx,yyy のフォーマットで、データ長は、4 になります。
        戻り値:
        データ長定義文字列
      • getSizeY

        public int getSizeY()
        フィールドの小数部のデータ長を返します。 通常は、整数型の文字列では、0 になりますが,小数点を表すデータ長は x,y 形式の場合、y 桁で表されます。 7,3 は、 xxxx,yyy のフォーマットで、データ長は、3 になります。
        戻り値:
        データ長定義文字列
      • getViewLength

        public String getViewLength()
        カラムの表示桁数を返します。 viewLength は、設定した場合のみ、使用できます。通常は、null が返ります。
        戻り値:
        カラムの文字桁数
      • isWritable

        public boolean isWritable()
        カラムが書き込み可能かどうかを返します。
        戻り値:
        カラムが書き込み可能かどうか
      • getRendererValue

        public String getRendererValue​(String value)
        データの値そのものではなく、その値のラベル文字を返します。
        パラメータ:
        value - 入力値
        戻り値:
        データ表示用の文字列
      • getRendererValue

        public String getRendererValue​(int row,
                                       String value)
        データ表示用のHTML文字列を作成します。 行番号毎に異なる値を返すことの出来る DBCellRenderer を使用することが出来ます。
        パラメータ:
        row - 行番号
        value - 入力値
        戻り値:
        データ編集用の文字列
      • getRendererValue

        public String getRendererValue​(int row,
                                       String value,
                                       String param)
        データ表示用のHTML文字列を作成します。 行番号毎に異なる値を返すことの出来る DBCellRenderer を使用することが出来ます。 第3引数に、パラメータを渡すことが出来ます。これは、viewMarker で [$XXXX param] 形式を渡すことで、行単位に表示形式を変更できます。 AbstractRenderer では、#getValue( String ) を呼び出しています。
        パラメータ:
        row - 行番号
        value - 入力値
        param - パラメータ
        戻り値:
        データ編集用の文字列
      • getWriteValue

        public String getWriteValue​(String value)
        データ出力用の文字列を作成します。 ファイル等に出力する形式を想定しますので、HTMLタグを含まない データを返します。 writeKeyLabel == true かつ addKeyLabel == "true" の場合は、":" で分離して、 ラベルのみを返します。 IO側で、カラムを分けて出力するので、VAL:LBL ではなく、LBL だけ出力します。 7.0.1.5 (2018/12/10)
        パラメータ:
        value - 入力値
        戻り値:
        データ出力用の文字列
      • getReaderValue

        public String getReaderValue​(String value)
        データ入力用の文字列を作成します。 ファイル等から、読み取る場合に、このメソッド経由で、必要な形式変換を行います。 現時点では、KEY:VAL形式の Selection オブジェクト経由でデータを取り込む場合、 KEY に分解処理します。
        パラメータ:
        value - 入力値
        戻り値:
        データ入力用の文字列
      • getEditorValue

        public String getEditorValue​(String value)
        データ編集用のHTML文字列を作成します。
        パラメータ:
        value - 入力値
        戻り値:
        データ編集用の文字列
      • getEditorValue

        public String getEditorValue​(int row,
                                     String value)
        データ編集用のHTML文字列を作成します。 行番号付の編集データを作成します。名前_行番号 で登録する為、 リクエスト情報を1つ毎のフィールドで処理できます。
        パラメータ:
        row - 行番号
        value - 入力値
        戻り値:
        データ編集用の文字列
      • getFixedValue

        public String getFixedValue​(String value,
                                    String encode)
        データ出力用の固定長文字列を作成します。 HOST送信用桁数がセットされていれば、そちらを優先します。
        パラメータ:
        value - 対象の値
        encode - 固定長で変換する文字エンコード
        戻り値:
        データ編集用の文字列
      • getRenderer

        public String getRenderer()
        データの表示用レンデラーを返します。
        戻り値:
        データの表示用レンデラー
      • getEditor

        public String getEditor()
        データの編集用エディターを返します。
        戻り値:
        データの編集用エディター
      • getDbType

        public String getDbType()
        文字種別名を返します。 カラムの文字種別名名称を返します。 これは,HTML上の各種タグに,データベース定義に応じたクラスを セットし,CSS(Cascading Style Sheet)の class="xxxxx" とする事により 各種スタイルを表現するのに使用します。 ここでは, カラムリソースの DBTYPE 属性で指定の文字列(X,S9,KXなど)を返します。
        戻り値:
        データの文字種別(X,KX,S9 など)
      • getNativeType

        public NativeType getNativeType()
        データのNATIVEの型の識別コードを返します。
        戻り値:
        NATIVEの型の識別コード(DBType で規定)
        関連項目:
        NativeType
      • getDefault

        public String getDefault()
        そのカラムの,デフォルト値の値を返します。 カラムリソースに デフォルト情報が登録されている場合は,その値を返します。 デフォルト値が設定されていない場合は, null を返します。
        戻り値:
        デフォルト値(無ければ null)
      • getRendererParam

        public String getRendererParam()
        表示用レンデラーのパラメータを取得します。
        戻り値:
        表示用レンデラーのパラメータ
      • getEditorParam

        public String getEditorParam()
        編集用エディターのパラメータを取得します。
        戻り値:
        編集用エディターのパラメータ
      • getDbTypeParam

        public String getDbTypeParam()
        データタイプのパラメータを取得します。
        戻り値:
        データタイプのパラメータ
      • getRoles

        public String getRoles()
        カラムロールを取得します。
        戻り値:
        カラムロール
      • getRoleMode

        public RoleMode getRoleMode()
        カラムオブジェクトのロールモードを返します。
        戻り値:
        カラムオブジェクトのロールモード
      • getDbid

        public String getDbid()
        接続先IDを返します。
        戻り値:
        接続先ID
      • valueAdd

        public String valueAdd​(String value,
                               String add)
        String引数の文字列を+1した文字列を返します。 これは、英字の場合(A,B,C など)は、B,C,D のように,最終桁の文字コードを +1 します。 文字列が数字タイプの場合は, 数字に変換して、+1 します。(桁上がりもあり) 混在タイプの場合は,最後の桁だけを確認して +1します。 引数が null の場合と、ゼロ文字列("")の場合は,引数を,そのまま返します。 ※ 機能拡張:第2引数に指定の文字列(数字、日付等)を指定する事で、 引数の文字列に、任意の値を加算できるようにします。 ただし、すべての DBTypeではなく、ある程度特定します。 対象外の DBTypeで、第2引数が null 出ない場合は、Exception を Throwsします。 第2引数が、null の場合は、従来と同じ+1します。
        パラメータ:
        value - 引数の文字列
        add - 加算する文字列(null の場合は、従来と同じ、+1 します。)
        戻り値:
        引数の文字列を+1した文字列。または、任意の値を加算した文字列。
      • valueCheck

        public ErrorMessage valueCheck​(String value)
        データが登録可能かどうかをチェックします。 データがエラーの場合は、そのエラー内容を返します。
        パラメータ:
        value - チェック対象の値
        戻り値:
        エラー内容 正常時は null
        関連項目:
        valueCheck( String , boolean )
      • valueCheck

        public ErrorMessage valueCheck​(String value,
                                       boolean isStrict)
        データが登録可能かどうかをチェックします。 データがエラーの場合は、そのエラー内容を返します。
        パラメータ:
        value - チェック対象の値
        isStrict - 厳密にチェック(isStrict=true)するかどうか
        戻り値:
        エラー内容 正常時は null
      • valueSet

        public String valueSet​(String value)
        エディターで編集されたデータを登録する場合に、データそのものを 変換して、実登録データを作成します。 例えば,大文字のみのフィールドなら、大文字化します。 実登録データの作成は、DBType オブジェクトを利用しますので, これと DBCellEditor とがアンマッチの場合は、うまくデータ変換 されない可能性がありますので、注意願います。
        パラメータ:
        value - 一般に編集データとして登録されたデータ
        戻り値:
        修正後の文字列(一般にデータベースに登録するデータ)
      • valueAction

        public String valueAction​(String action,
                                  String oldValue,
                                  String newValue)
        action で指定されたコマンドを実行して、値の変換を行います。 oldValue(旧データ)は、元のDBTableModelに設定されていた値です。通常は、 この値を使用してカラム毎に変換を行います。newValue(新データ)は、引数で 指定された新しい値です。この値には、パラメータを指定して変換方法を 制御することも可能です。 指定のアクションがカラムで処理できない場合は、エラーになります。
        パラメータ:
        action - アクションコマンド
        oldValue - 入力データ(旧データ)
        newValue - 入力データ(新データ)
        戻り値:
        実行後のデータ
      • getConfig

        public DBColumnConfig getConfig()
        内部の設定情報オブジェクトを返します。 このオブジェクトを ローカルで書き換えて、DBColumn を作るようにします。
        戻り値:
        設定情報オブジェクト
      • getEditorAttributes

        public Attributes getEditorAttributes()
        編集用エディター用の追加属性を返します。
        戻り値:
        属性リスト
      • isAddNoValue

        public boolean isAddNoValue()
        メニューに空の選択リストを追加するかどうかを取得します。
        戻り値:
        空の選択リストを追加するかどうか(true:追加する/false:追加しない)
      • getAddKeyLabel

        public String getAddKeyLabel()
        セレクトメニューの場合、キー:ラベル形式で表示するかどうか[true/false/null]を返します。 これは、上位入れ子のタグの OptionTag で、addKeyLabel を取り出して、 true であれば、キー:ラベル形式 のオプションを、#addOption( String ) で 登録させます。
        戻り値:
        true:キー:ラベル形式/false:ラベルのみ/null:指定通り
      • isWriteKeyLabel

        public boolean isWriteKeyLabel()
        セレクトメニューの場合、キーとラベルを分けて出力するかどうか[true/false]を取得します。 カラムがプルダウンメニュー形式の場合、ファイル出力時に、キーとラベルを分離して出力する事ができます。 この属性と、addKeyLabel とは、微妙に関連していて、addKeyLabel="true" のみの場合は、 キー:ラベル形式で、出力されますが、writeKeyLabel="true" も指定されている場合は、こちらが優先されます。 なお、この指定が有効なのは、セレクトメニューのカラムのみです。
        戻り値:
        キー/ラベル分離出力するかどうか[true:分離出力/false:通常]
      • isOfficial

        public boolean isOfficial()
        このカラムオブジェクトがカラムリソースより正式に作られたかどうかを取得します。 カラムリソースが無い場合は、仮オブジェクトかデータベースメタデータより作成されます。 その場合は、チェック機能が緩くなるため、正式なカラムオブジェクトと区別する為に この属性を持ちます。
        戻り値:
        正式に作られたかどうか(true:正式/false:暫定)
      • getLabelData

        public LabelData getLabelData()
        カラムのラベルデータオブジェクトを返します。
        戻り値:
        カラムのラベルデータオブジェクト
      • getCodeData

        public CodeData getCodeData()
        カラムのコードデータオブジェクトを返します。 コードデータが存在しない場合は、null を返します。 受け取り側で、null かどうか判定してから使用してください。
        戻り値:
        カラムのコードデータオブジェクト
      • getFieldSize

        public String getFieldSize()
        フィールドの入力枠サイズを返します。 これは、設定された値そのものを返しますので、未設定の時は、null が返ります。 テキストフィールドのサイズに該当します。 何も指定しない場合は、null が返ります。 その場合の、入力枠サイズは、maxlength が使用されます。 ただし、桁数が大きい場合は、システム定数の HTML_COLUMNS_MAXSIZE や、 HTML_VIEW_COLUMNS_MAXSIZE で指定された値が使われます。 それらの値よりも、ここで取得 した fieldSize が優先されます。
        戻り値:
        入力枠サイズ
      • getFieldSize

        public int getFieldSize​(int maxlength)
        引数の最大入力サイズより、実際のフィールドのサイズを求めます。 計算方法 ① fieldSize があれば、その値を返します。 ② ColumnData#getTotalSize() を求め、あれば、その値を返す。 ③ totalSizeが、引数の最大入力サイズより大きい場合は、引数の最大入力サイズを返す。 各呼び出すメソッドは、引数の最大入力サイズ のみ指定します。それ以外の値は、内部の値を使います。 最大入力サイズは、システム定数の、HTML_COLUMNS_MAXSIZE か、HTML_VIEW_COLUMNS_MAXSIZE が 一般的です。
        パラメータ:
        maxlength - 最大入力サイズ
        戻り値:
        表示すべきサイズ
        関連項目:
        getFieldSize()
      • getEventColumn

        public String getEventColumn()
        イベントカラム(親カラム)。
        戻り値:
        イベントカラム
      • getEventValue

        public String getEventValue()
        イベントカラムの子カラムの値を出力するためのSQL文を返します。
        戻り値:
        イベントカラムの値SQL文
      • getRawEditParam

        public String getRawEditParam()
        {@XXXX}を変換していない状態の編集パラメータを返します。
        戻り値:
        生編集パラメータ
      • getRawRendParam

        public String getRawRendParam()
        {@XXXX}を変換していない状態の編集パラメータを返します。
        戻り値:
        生表示パラメータ
      • getEventURL

        public String getEventURL()
        eventColumn利用時にJSで利用するURL。
        戻り値:
        イベントURL
      • getEventColumnTag

        public String getEventColumnTag​(String tag,
                                        String initVal,
                                        boolean writable)
        引数のタグ文字列に対して、イベントカラムの実行に必要なspanタグを付加した 文字列を返します。
        パラメータ:
        tag - タグ文字列
        initVal - 子カラムの初期値
        writable - タグの要素が書き込み可能かどうか
        戻り値:
        spanタグを付加したタグ文字列
      • getEventColumnTag

        public String getEventColumnTag​(String tag,
                                        String initVal,
                                        int row,
                                        boolean writable)
        引数のタグ文字列に対して、イベントカラムの実行に必要なspanタグを付加した 文字列を返します。
        パラメータ:
        tag - タグ文字列
        initVal - 子カラムの初期値
        row - 行番号
        writable - タグの要素が書き込み可能かどうか
        戻り値:
        spanタグを付加したタグ文字列
      • isNeedsParamParse

        public boolean isNeedsParamParse()
        セットされている表示パラメータ、編集パラメータに"{@XXXX}"が含まれているか(パラメーターのパースが必要か)を 返します。
        戻り値:
        "{@XXXX}"が含まれているか(含まれている場合true)
      • getUseSLabel

        public String getUseSLabel()
        ラベル短ベースのメニューにするかどうか。
        戻り値:
        イベントカラム
      • getNoDisplayVal

        public String getNoDisplayVal()
        非表示文字列を返します。 これは、例えば、数字型の場合は、0 がデフォルトなどの場合、 あえて表示したくないなどのケースに使います。 そのような状況が設定されていない場合は、null が返されます。
        戻り値:
        非表示文字
      • isStringOutput

        public boolean isStringOutput()
        レンデラー利用ファイル出力時に数値等も文字タイプに固定するかどうか (初期値:USE_STRING_EXCEL_OUTPUT[=])。 これは、レンデラーでのExcel出力時のセルタイプに影響します。 trueの場合は数値も全て文字として出力します。 falseの場合はDBTYPEに従った出力になりるため、数値型の DBTYPE では、doubleに一度変換されます。 (初期値:USE_STRING_EXCEL_OUTPUT[=])。
        戻り値:
        レンデラー利用時の出力方法 (true:String出力/false:DBTYPEに従う)
      • toString

        public String toString()
        オブジェクトの文字列表現を返します。 n=Name,l=Label,c=ClassName,r=Renderer,e=Editor,d=DbType という形式を作成します。
        オーバーライド:
        toString クラス内 Object
        戻り値:
        文字列表現