Package nablarch.core.dataformat
Class CharacterReplacementManager
java.lang.Object
nablarch.core.dataformat.CharacterReplacementManager
- All Implemented Interfaces:
Initializable
寄せ字変換処理を行うクラス。
本クラスは、文字列中のある特定の文字を等価な代替文字に変換する用途での使用を想定している。
想定する変換の例: 髙→高 碕→崎
このような文字列変換処理のことを、寄せ時変換処理と呼ぶ。
禁則文字を一括で豆腐(■)に変換するような処理は、本クラスでは想定していないので、
文字を検知した場合に、ワーニングログを出力する機能や、呼び出し元に検知したことを通知する機能は提供しない。
想定しない変換の例: 唖→■ \→[
寄せ字変換処理は、寄せ字タイプごとに定義された寄せ字変換定義ファイルの情報をもとに行う。
寄せ字変換定義ファイルは初期化時に読み込み、メモリ上にキャッシュする。
本クラスは、文字列中の特定の1文字を、特定の1文字に変換することしかサポートしない(サロゲートペアの変換もサポートしない)。
よって、寄せ字変換定義ファイルに、「ヘ゜」のような半角2文字で1文字を表現する合字などの複数の文字や、サロゲートペアが定義された場合は、例外をスローする。
- Author:
- Masato Inoue
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidcheckByteLength(String fromStr, String toStr, CharacterReplacementConfig config) 変換前文字列と変換後文字列のバイト長チェックを行う。 バイト長チェックは、文字エンコーディングに従い行う。protected voidcheckProperty(String name, String value, CharacterReplacementConfig config) 設定されたプロパティの妥当性をチェックする。protected voidcheckReplacementCharacterLength(String fromStr, String toStr, CharacterReplacementConfig config) 寄せ字変換定義ファイルに設定された変換前文字列と変換後文字列の文字列長が「1」であることを確認する。booleancheckReplacementTypeEncoding(String typeName, Charset encoding) 引数で指定された寄せ字タイプ名と文字エンコーディングの組み合わせが、定義された組み合わせと一致するかどうかをチェックする。booleancontainsReplacementType(String typeName) 引数で指定された寄せ字タイプ名が、寄せ字タイプ名として定義されているかどうかチェックする。protected nablarch.core.dataformat.CharacterReplacementManager.CharacterReplacementDefinition寄せ字変換定義ファイルを読み込み、寄せ字変換テーブルを生成する。protected void寄せ字変換定義ファイルを読み込み、寄せ字変換テーブルを生成する。static CharacterReplacementManagerFormatterFactoryクラスのインスタンスをリポジトリより取得する。 リポジトリより取得できなかった場合は、デフォルトで本クラスのインスタンスを返却する。void初期化処理を行う。protected PropertiesloadPropertyFile(String filePath) 寄せ字変換定義ファイルをロードする。protected void文字を変換した際のログを出力する。replaceCharacter(String typeName, String input) 引数で渡された文字列に対して、寄せ字変換処理を行う。setConfigList(List<CharacterReplacementConfig> configList) 寄せ字変換処理の設定を保持するListを設定する。protected voidsetEncodingToTable(CharacterReplacementConfig config, nablarch.core.dataformat.CharacterReplacementManager.CharacterReplacementDefinition definition) 寄せ字変換テーブルに、文字エンコーディングを設定する。
-
Constructor Details
-
CharacterReplacementManager
public CharacterReplacementManager()
-
-
Method Details
-
getInstance
FormatterFactoryクラスのインスタンスをリポジトリより取得する。 リポジトリより取得できなかった場合は、デフォルトで本クラスのインスタンスを返却する。- Returns:
CharacterReplacementManagerのインスタンス
-
initialize
public void initialize()初期化処理を行う。- Specified by:
initializein interfaceInitializable
-
createReplacementTables
protected void createReplacementTables()寄せ字変換定義ファイルを読み込み、寄せ字変換テーブルを生成する。寄せ字変換定義ファイルに定義された変換前および変換後の文字列が1文字でない(Stringのlengthが1でない)場合は、 例外をスローする。
変換前と変換後の文字のバイト長一致チェックが有効な場合、 寄せ字変換定義ファイルに定義された変換前および変換後の文字列を指定されたエンコーディングに従いバイト配列に変換し、 変換前と変換後のバイト長が一致しない場合は、例外をスローする。
-
createReplacementTable
protected nablarch.core.dataformat.CharacterReplacementManager.CharacterReplacementDefinition createReplacementTable(CharacterReplacementConfig config) 寄せ字変換定義ファイルを読み込み、寄せ字変換テーブルを生成する。- Parameters:
config- 寄せ字変換処理の設定を保持するクラス- Returns:
- 寄せ字変換テーブルを保持するクラス
-
setEncodingToTable
protected void setEncodingToTable(CharacterReplacementConfig config, nablarch.core.dataformat.CharacterReplacementManager.CharacterReplacementDefinition definition) 寄せ字変換テーブルに、文字エンコーディングを設定する。- Parameters:
config- 寄せ字変換処理の設定を保持するクラスdefinition- 寄せ字変換テーブルを保持するクラス
-
loadPropertyFile
寄せ字変換定義ファイルをロードする。- Parameters:
filePath- 寄せ字変換定義ファイルのパス- Returns:
- 寄せ字変換定義ファイルをロードしたPropertiesクラス
-
checkReplacementCharacterLength
protected void checkReplacementCharacterLength(String fromStr, String toStr, CharacterReplacementConfig config) 寄せ字変換定義ファイルに設定された変換前文字列と変換後文字列の文字列長が「1」であることを確認する。- Parameters:
fromStr- 寄せ字変換前の文字列toStr- 寄せ字変換後の文字列config- 寄せ字変換処理の設定を保持するクラス
-
checkByteLength
変換前文字列と変換後文字列のバイト長チェックを行う。 バイト長チェックは、文字エンコーディングに従い行う。- Parameters:
fromStr- 変換前文字列toStr- 変換後文字列config- 寄せ字変換処理の設定を保持するクラス
-
checkProperty
protected void checkProperty(String name, String value, CharacterReplacementConfig config) throws IllegalStateException 設定されたプロパティの妥当性をチェックする。- Parameters:
name- プロパティ名value- プロパティの値config- 寄せ字変換処理の設定を保持するクラス- Throws:
IllegalStateException- プロパティが設定されていない場合
-
replaceCharacter
引数で渡された文字列に対して、寄せ字変換処理を行う。- Parameters:
typeName- 寄せ字タイプ名input- 入力文字列- Returns:
- 寄せ字変換処理後の文字列
-
outputLog
文字を変換した際のログを出力する。- Parameters:
typeName- 寄せ字変換タイプ名from- 寄せ字変換前の文字to- 寄せ字変換後の文字input- 入力文字列
-
setConfigList
寄せ字変換処理の設定を保持するListを設定する。- Parameters:
configList- 寄せ字変換処理の設定を保持するList- Returns:
- このオブジェクト自体
-
containsReplacementType
引数で指定された寄せ字タイプ名が、寄せ字タイプ名として定義されているかどうかチェックする。- Parameters:
typeName- 寄せ字タイプ名- Returns:
- 引数で指定された寄せ字タイプ名が定義されている場合、true
-
checkReplacementTypeEncoding
引数で指定された寄せ字タイプ名と文字エンコーディングの組み合わせが、定義された組み合わせと一致するかどうかをチェックする。寄せ字タイプ名と、文字エンコーディングの組み合わせは、通常コンポーネント設定ファイルで定義される。
- Parameters:
typeName- 寄せ字タイプ名encoding- 文字エンコーディング- Returns:
- 寄せ字タイプ名が
-