org.opengion.plugin.column

## クラス DBType_NVAR

- java.lang.Object
- - org.opengion.hayabusa.db.AbstractDBType
  - - org.opengion.plugin.column.DBType_NVAR

- すべての実装されたインタフェース:
    DBType

      public class DBType_NVAR
      extends AbstractDBType

       Unicode文字列の値を HTML のエスケープ記号(&#xZZZZ;)に変換する、カラム属性を定義します。

       SJIS(JA16SJIS) で作成されたデータベースに、(NVARCHAR2)を使用して中国語等を登録するのは
       非常に複雑でかつ、リスクが大きい処理になります。
       ORACLE殿でも、自信を持っては勧められない機能とのコメントを頂いています。
       そこで、HTMLでのエスケープ文字を使用して、Unicodeを文字列化して登録する為の
       DBType として、新規に作成します。
       ここでは、入力文字を、キャラクタ(char)型に分解し、(&#xZZZZ;)に変換していきます。
       よって、通常に１文字(Shift-JISで２Byte,UTF-8で３Byte)が、８Byteになります。
       この変換された文字列を、HTML上でそのまま取り出すと、元のUnicode文字に戻る為、
       通常のShift-JISでは、扱えない文字(中国語など)でも表示可能になります。

       (NVARCHAR2)を使用して中国語等を登録する場合の文字コード変換

       APレイヤ     ネットレイヤ                        DBレイヤ
       文字入力  → 全てDBのCHARセットに変換  →  NCHARの分だけUTFに変換
       (UTF)      (S-jis)                         (UTF)

       タイプチェックは、HTMLのエスケープ記号(&#xZZZZ;)に変換後に実施されます。
       データベースへの登録には、半角英数字になります。
       ・文字列長は、Byte換算での文字数との比較
       ・半角文字列チェック「 c < 0x20 || c > 0x7e 以外」エラー
       ・文字パラメータの 正規表現チェック
       ・クロスサイトスクリプティングチェック

  機能分類
    データ属性
  変更履歴:
    3.8.0.0 (2005/06/07) 新規作成
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

- - ### フィールドのサマリー

    - ### クラスから継承されたフィールド org.opengion.hayabusa.db.AbstractDBType

      `BUFFER_MIDDLE, CR`

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

      `DEF_TYPE`

  - ### コンストラクタのサマリー

    コンストラクタ
    コンストラクタと説明
    `DBType_NVAR()` デフォルトコンストラクター

  - ### メソッドのサマリー

    すべてのメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `java.lang.String` | `valueAdd(java.lang.String value)` String引数の文字列を＋１した文字列を返します。
    `java.lang.String` | `valueFill(java.lang.String value, int sizeX, int sizeY, java.lang.String encode)` 半角０文字の固定長でFILL埋めされた文字列を返します。
    `java.lang.String` | `valueSet(java.lang.String value)` エディターで編集されたデータを登録する場合に、データそのものを 変換して、実登録データを作成します。

    - ### クラスから継承されたメソッド org.opengion.hayabusa.db.AbstractDBType

      `getDefault, getNativeType, valueAction, valueAdd, valueCheck, xssCheck`

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

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

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

    - #### DBType_NVAR

          public DBType_NVAR()

      デフォルトコンストラクター
      変更履歴:
        6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.

  - ### メソッドの詳細

    - #### valueFill

          public java.lang.String valueFill(java.lang.String value,
                                            int sizeX,
                                            int sizeY,
                                            java.lang.String encode)

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

    - #### valueAdd

          public java.lang.String valueAdd(java.lang.String value)

      String引数の文字列を＋１した文字列を返します。 これは、英字の場合(A,B,C など)は、B,C,D のように,最終桁の文字コードを ＋１ します。 文字列が数字タイプの場合は, 数字に変換して、+1 します。(桁上がりもあり) 混在タイプの場合は,最後の桁だけを確認して ＋１します。 引数が null の場合と、ゼロ文字列("")の場合は,物理的初期設定値(String getDefault()) の値を返します。
      定義:
        `valueAdd` インタフェース内 `DBType`
      オーバーライド:
        `valueAdd` クラス内 `AbstractDBType`
      パラメータ:
        `value` - String引数の文字列
      戻り値:
        String引数の文字列を＋１した文字列

    - #### valueSet

          public java.lang.String valueSet(java.lang.String value)

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

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