org.opengion.hayabusa.db

## クラス AbstractDBType

- java.lang.Object
- - org.opengion.hayabusa.db.AbstractDBType

- すべての実装されたインタフェース:
    DBType
  直系の既知のサブクラス:
    DBType_ALL, DBType_CRYPT, DBType_DATE, DBType_DD, DBType_HMS, DBType_K, DBType_KCL, DBType_MD5, DBType_NVAR, DBType_OASNM, DBType_PN, DBType_PN2, DBType_R, DBType_S9, DBType_X, DBType_X9, DBType_XH, DBType_XHU, DBType_XK, DBType_XKZ, DBType_XL, DBType_XLU9, DBType_XU, DBType_XU9, DBType_YM01, DBType_YM31, DBType_YMD

      public abstract class AbstractDBType
      extends Object
      implements DBType

  一般的な半角文字列を扱う為の、カラム属性を定義します。 半角文字列とは、「 c < 0x20 || c > 0x7e 以外」でのみ 構成された文字列のことです。 タイプチェックとして、以下の条件を判定します。 ・文字列長は、Byte換算での文字数との比較 ・半角文字列チェック「 c < 0x20 || c > 0x7e 以外」エラー ・文字パラメータの 正規表現チェック ・クロスサイトスクリプティングチェック
  機能分類
    データ属性
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

- - ### フィールドの概要

    - ### インタフェースから継承されたフィールド org.opengion.hayabusa.db.DBType

      `DEF_TYPE`

  - ### コンストラクタの概要

    コンストラクタ
    コンストラクタと説明
    `AbstractDBType()` デフォルトコンストラクター
    `AbstractDBType(String defValue)` コンストラクター 各サブクラスのタイプ値とデフォルト値を設定して、オブジェクトを構築します。

  - ### メソッドの概要

    メソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `String` | `getDefault()` そのDBTypeの,デフォルトの値(物理的初期設定値)を返します。
    `NativeType` | `getNativeType()` NATIVEの型の識別コードを返します。
    `String` | `valueAction(String action, String oldValue, String newValue)` action で指定されたコマンドを実行して、値の変換を行います。
    `String` | `valueAdd(String value)` String引数の文字列を＋１した文字列を返します。
    `String` | `valueAdd(String value, String add)` String引数の文字列に、第２引数に指定の文字列(数字、日付等)を加算して返します。
    `ErrorMessage` | `valueCheck(String key, String value, int sizeX, int sizeY, String typeParam, boolean isStrict)` データが登録可能かどうか[true/false]をチェックします。
    `String` | `valueFill(String value, int sizeX, int sizeY, String encode)` 半角スペースで固定長(半角換算の数)に変換した文字列を返します。
    `String` | `valueSet(String value)` エディターで編集されたデータを登録する場合に、データそのものを変換して、実登録データを作成します。
    `protected ErrorMessage` | `xssCheck(String key, String value, ErrorMessage msg)` HTMLタグかどうかをチェックします。

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### コンストラクタの詳細

    - #### AbstractDBType

          public AbstractDBType()

      デフォルトコンストラクター
      変更履歴:

        4.0.0.0 (2005/01/31) type 廃止

    - #### AbstractDBType

          public AbstractDBType(String defValue)

      コンストラクター 各サブクラスのタイプ値とデフォルト値を設定して、オブジェクトを構築します。
      パラメータ:
        `defValue` - データのデフォルト値
      変更履歴:

        4.0.0.0 (2005/01/31) type 廃止

  - ### メソッドの詳細

    - #### getNativeType

          public NativeType getNativeType()

      NATIVEの型の識別コードを返します。
      定義:
        `getNativeType` インタフェース内 `DBType`
      戻り値:
        NATIVEの型の識別コード(DBType で規定)
      関連項目:
        `NativeType`
      変更履歴:

        3.5.4.7 (2004/02/06) 新規作成
        4.1.1.2 (2008/02/28) Enum型(fukurou.model.NativeType)に変更

    - #### valueFill

          public String valueFill(String value,
                         int sizeX,
                         int sizeY,
                         String encode)

      半角スペースで固定長(半角換算の数)に変換した文字列を返します。 半角スペース埋めは、文字が半角、全角混在でもかまいません。 なお、エラーチェックは行われません。 実行前に、必ず valueCheck( String value ,int len ) を行う必要があります。
      定義:
        `valueFill` インタフェース内 `DBType`
      パラメータ:
        `value` - ＦＩＬＬ埋めする文字列
        `sizeX` - 整数部分の文字列の長さ
        `sizeY` - 少数部分の文字列の長さ
        `encode` - 固定長で変換する文字エンコード
      戻り値:
        ＦＩＬＬ埋めした新しい文字列
      変更履歴:

        3.5.4.5 (2004/01/23) エンコード指定に変更します。

    - #### getDefault

          public String getDefault()

      そのDBTypeの,デフォルトの値(物理的初期設定値)を返します。 一般に、文字列の場合は,ゼロストリング"" 数字の場合は "0" です。
      定義:
        `getDefault` インタフェース内 `DBType`
      戻り値:
        物理的初期設定値

    - #### valueAdd

          public String valueAdd(String value)

      String引数の文字列を＋１した文字列を返します。 これは、英字の場合(A,B,C など)は、B,C,D のように,最終桁の文字コードを ＋１ します。 文字列が数字タイプの場合は, 数字に変換して、+1 します。 最終桁が、"9","z","Z" および、その全角文字の場合、"0","a","Z" および、その全角文字に 変換後、ひとつ上の桁で、同様の ＋１ 操作を行います。 最も上位の桁が、これらの繰り上がり桁の場合は、すべての桁が初期化された状態に戻ります。 例：123 ⇒ 124 , ABC ⇒ ABD , 789 ⇒ 790 , XYZ ⇒ XXZ , ABC123 ⇒ ABC124 , AB99 ⇒ AC00 , 12ZZ99 ⇒ 13AA00 , ZZZZ ⇒ AAAA 引数が null の場合と、ゼロ文字列("")の場合は,物理的初期設定値(String getDefault()) の値を返します。
      定義:
        `valueAdd` インタフェース内 `DBType`
      パラメータ:
        `value` - String引数
      戻り値:
        引数の文字列を＋１した文字列。
      変更履歴:

        4.0.0.0 (2005/01/31) Ａｄｄの方法を変更(汎用的なＡｄｄ)

    - #### valueAdd

          public String valueAdd(String value,
                        String add)

      String引数の文字列に、第２引数に指定の文字列(数字、日付等)を加算して返します。 これは、valueAdd( String ) と本質的には同じ動きをしますが、任意の文字列を加算する ため、主として、数字系や日付系の DBType にのみ実装します。 実装がない場合は、UnsupportedOperationException を throw します。 第２引数 が、null の場合は、＋１ する valueAdd( String )が呼ばれます。 これは、将来的には、valueAdd( String ) を無くすことを意味します。
      定義:
        `valueAdd` インタフェース内 `DBType`
      パラメータ:
        `value` - String引数
        `add` - 加算する文字列(null の場合は、従来と同じ、+1 します。)
      戻り値:
        引数の文字列第２引数に指定の文字列(数字、日付等)を加算した文字列。
      例外:
        `UnsupportedOperationException` - 実装が存在しない場合
      変更履歴:

        5.6.0.3 (2012/01/24) ADD に、引数の値を加算する機能を追加します。

    - #### valueSet

          public String valueSet(String value)

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

        3.3.3.0 (2003/07/09) 前後のスペースを取り除いておく。
        3.3.3.1 (2003/07/18) 後ろスペースを取り除く。(StringUtil#rTrim)

    - #### valueAction

          public String valueAction(String action,
                           String oldValue,
                           String newValue)

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

    - #### valueCheck

          public ErrorMessage valueCheck(String key,
                                String value,
                                int sizeX,
                                int sizeY,
                                String typeParam,
                                boolean isStrict)

      データが登録可能かどうか[true/false]をチェックします。 データがエラーの場合は、そのエラー内容を返します。
      定義:
        `valueCheck` インタフェース内 `DBType`
      パラメータ:
        `key` - キー
        `value` - 値
        `sizeX` - 整数部分の文字列の長さ
        `sizeY` - 少数部分の文字列の長さ
        `typeParam` - dbType パラメータ
        `isStrict` - 厳密にチェックするかどうか [true:する/false:標準的]
      戻り値:
        エラー内容
      変更履歴:

        2.1.1.1 (2002/11/15) HTMLタグチェックのメソッドの共有化。
        3.0.1.3 (2003/03/11) DBTypeCheckUtilクラスを利用するように修正
        3.6.0.0 (2004/09/22) dbType パラメータを引数に追加
        5.2.2.0 (2010/11/01) 厳密にチェック(isStrict=true)するフラグを追加

    - #### xssCheck

          protected ErrorMessage xssCheck(String key,
                              String value,
                              ErrorMessage msg)

      HTMLタグかどうかをチェックします。 クロスサイトスクリプティング対策として、'<', '>' は登録させない。
      パラメータ:
        `key` - タグのキー
        `value` - 対象の値
        `msg` - ErrorMessageオブジェクト
      戻り値:
        エラー内容(エラーを追加した、ErrorMessageオブジェクト)
      変更履歴:

        2.1.1.1 (2002/11/15) HTMLタグチェックのメソッドの共有化。

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