パッケージ 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_MD5`, `DBType_NVAR`, `DBType_R`, `DBType_S9`, `DBType_SHA`, `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,

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

    フィールド
    修飾子とタイプ | フィールド | 説明
    --- | --- | ---
    `protected static int` | `BUFFER_MIDDLE` | StringBilderなどの初期値を設定します。
    `protected static String` | `CR` | システムの改行コードを設定します。

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

      `DEF_TYPE`

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

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

  - ### メソッドの概要

    すべてのメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッド | 説明
    --- | --- | ---
    `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`

- - ### フィールドの詳細

    - #### CR

          protected static final String CR

      システムの改行コードを設定します。

    - #### BUFFER_MIDDLE

          protected static final int BUFFER_MIDDLE

      StringBilderなどの初期値を設定します。 200
      関連項目:
        定数フィールド値

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

    - #### 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)に変更
      このメソッドは、nullを返しません

    - #### 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) エンコード指定に変更します。
      このメソッドは、nullを返しません

    - #### 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タグチェックのメソッドの共有化。, 6.2.0.0 (2015/02/27) ERR0010 の引数が、変更されているので、修正します。