チェッククラス-Library変更機能
JIS X 0213文字の対応を行う事を目的として、チェッククラスのライブラリ変更機能 が追加されました。
標準チェック時に使用する、文字の長さの判定、使用可能文字の判定 などを入れ替えることが可能にになります。
この設定はConfigにて行うことで、チェッククラス全体に反映されるようになります。
Library変更 対象範囲について
Library変更機能の対象範囲は、以下の2つになります。
- Webtribe/VisualFrame標準のチェッククラスを使用している場合
- DefaultCheckClass#checkCommon メソッドを実行している場合
独自作成されたチェッククラスを使用し、DefaultCheckClass#checkCommonを実行していないチェッククラスには 設定が反映されませんので、ご注意ください。
Library種類
製品標準で用意しているライブラリは以下になります。
全て jp.ne.mki.wedge.pub.data.check のパッケージに含まれています。
詳しい説明は リンク先のJavaDocを参照してください。
- DefaultCheckLibrary
- 今までのチェックと同じ動作を行うチェックライブラリです。
- このライブラリでは サロゲートペアが入力されることは想定していませんので、ご注意ください。
- 旧バージョンとの互換のため、設定なしの場合はこのLibraryがデフォルトで適用されます。
- CodePointByteCheckLibrary
- バイトチェックを行うチェックライブラリです。
- バイト変換時の文字コードをUTF/8,16などにすることにより、サロゲートペアの使用も可能です。
- CodePointLengthCheckLibrary
- 長さのチェックがコードポイントでの桁数でのチェックを行います。
- DMC/データ型の長さを 文字桁数 の設定にする必要がありますが、桁数でのチェックのため、エラーメッセージが使用ユーザにとって分かりやすいというメリットがあります。
- MS932CheckLibrary
- MS932にて変換可能な文字のみ許可するチェックライブラリです。
- 長さのチェックは現状通りバイトチェックですが、サロゲートペア/結合文字 などが含まれないため、MS932などの文字コードにてバイト数によるチェックが可能になります。
- NoSurrogateCheckLibrary
- サロゲートペアの文字のみ許可しないチェックライブラリです。
- NoSurrogateNoCombiningCheckLibrary
- サロゲートペア/結合文字の文字のみ許可しないチェックライブラリです。
設定方法
設定はConfigにて行います。
Configファイルの config/module/setting/check のノードの下に、
checklibrary ノードを作成し、class属性にLibraryクラス名、resource属性にメッセージリソースパス
を指定します。
Configファイルは、RunClientの場合は RunClient.wdgです。
Byte変換時の文字コードの指定は、 現状通り config/module/bytecheck ノードにて指定します。
Library作成方法
チェックLibraryは任意に作成することが可能です。
jp.ne.mki.wedge.run.interfaces.CheckLibraryInterface のインターフェースを実装されているクラスであれば
設定が可能です。
基本的に標準チェックを実行するが、データタイプに関わらず特定の文字をエラーとしたい場合には、
標準提供チェックLibraryで使用している 抽象クラスAbstractCheckLibrary
を継承して作成することも可能です。
標準提供チェックLibraryのソースは、製品購入済みでサポート契約されているお客様にはご提供可能です。
詳しくはサポートまでお問い合わせください。
メッセージリソース変更方法
チェックメッセージは ResourceBundleの仕組みを用いて、
外部Propertiesファイルより指定しています。
製品標準で使用されているメッセージリソースの内容は以下になります。
jp.ne.mki.wedge.pub.data.check.CheckLibraryMessageVer1_ja.properties
DefaultCheckLibraryのライブラリを使用
する場合に使われるメッセージリソースです。
ver1.2.0-11以前と同じメッセージ内容になります。
jp.ne.mki.wedge.pub.data.check.CheckLibraryMessageVer2_ja.properties
DefaultCheckLibrary以外のライブラリを使用 する場合に使われるメッセージリソースです。
独自のメッセージ文字列に置き換えたものを、propertiesファイルとして作成(native2asciiの変換が必要)し、 クラスパスに追加、Configにパスを設定することにより反映されるようになります。
たとえば、「SampleCheckMessage_ja.properties」というファイルを指定し、
リソースのパス(JARの中に配置しているパス)の位置を jp/ne/developer/SampleCheckMessage_ja.properties とした場合には、
Configでの指定は
<checklibrary ・・・(省略)・・・ resource="jp.ne.developer.SampleCheckMessage" />
になります。