ページの先頭行へ戻る
Interstage Charset Manager Standard Edition V9 システム構築ガイド コンバータ編
FUJITSU Software

4.2.1 Converterクラス

コード変換を行うクラスです。

クラス宣言

public class Converter
extends java.lang.Object

クラス説明

本クラスは、コンストラクタで指定されたコード変換ポリシーと文字エンコーディングに従って、文字ストリームに対してコード変換を行います。コード変換の実行には、convertメソッドを使用します。

本クラスは、コード変換を行ったデータに関する統計情報を保持します。統計情報は、convert メソッドでコード変換を実行することで更新されます。

内部クラス

static class Converter.EncodingIn

Converterクラスで使用する入力データの文字エンコーディング形式を表現するクラスです。詳しくは、“4.2.2 Converter.EncodingInクラス”を参照してください。

static class Converter.EncodingOut

Converterクラスで使用する出力データの文字エンコーディング形式を表現するクラスです。詳しくは、“4.2.3 Converter.EncodingOutクラス”を参照してください。

static class Converter.Results

コード変換の結果を保持するクラスです。詳しくは、“4.2.4 Converter.Resultsクラス”を参照してください。

static class Converter.Statistics

コード変換の統計情報を保持するクラスです。詳しくは、“4.2.5 Converter.Statisticsクラス”を参照してください。

コンストラクタ

宣言
public Converter(ConversionPolicy cp,
                 Converter.EncodingIn encIn,
                 Converter.EncodingOut encOut) 
                 throws java.lang.NullPointerException, 
                    com.fujitsu.charsetmanager.textprocessing.PolicyFormatException, 
                    com.fujitsu.charsetmanager.textprocessing.EncodingException
機能説明

コード変換ポリシーと入出力のエンコーディング形式を指定して、Converterを構築します。

パラメタ
cp

コード変換ポリシーを指定します。ConversionPolicyクラスのインスタンスを指定します。詳しくは、“4.2.6 ConversionPolicyクラスス”を参照してください。

encIn

入力ストリームの文字エンコーディング形式を指定します。Converter.EncodingInクラスのオブジェクトを指定します。詳しくは、“4.2.2 Converter.EncodingInクラス”を参照してください。

encOut

出力ストリームの文字エンコーディング形式を指定します。Converter.EncodingOutクラスのオブジェクトを指定します。詳しくは、“4.2.3 Converter.EncodingOutクラス”を参照してください。

例外
java.lang.NullPointerException

パラメタにNULLが指定されています。

PolicyFormatException

未サポートのコード変換ポリシーが指定されています。

EncodingException

コード変換ポリシーに適合しない文字エンコーディング形式が指定されています。

メソッド

convert

宣言
public Converter.Results convert(java.io.InputStream in,
                                 java.io.OutputStream out)
         throws com.fujitsu.charsetmanager.textprocessing.EncodingFormatException,
                com.fujitsu.charsetmanager.textprocessing.EncodingException,
                com.fujitsu.charsetmanager.textprocessing.IllegalInputDataException,
                com.fujitsu.charsetmanager.textprocessing.ConvertingException,
                java.lang.NullPointerException,
                java.io.IOException
機能説明

入力ストリームに対してコード変換を実行し、出力ストリームに出力します。本メソッドを呼び出すと、getStatisticsメソッドで返されるコード変換統計情報が、コード変換結果に応じて更新されます。

シフトコードを使用するエンコーディングにおいては、入力ストリーム、出力ストリームともに初期シフト状態を半角文字として扱います。initialize メソッドを使用することで、シフト状態を初期化することができます。

パラメタ
in

入力ストリームを指定します。

out

出力ストリームを指定します。

復帰値

コード変換結果を含むResultsクラスのインスタンスを返却します。詳しくは、“4.2.4 Converter.Resultsクラス”を参照してください。

例外
EncodingFormatException

入力ストリーム中の文字のエンコーディング形式に誤りがあります。コード変換ポリシーで、例外発生を指定した場合に発生します。

EncodingException

文字コードのバイト列へのエンコーディング中に問題が発生しました。

IllegalInputDataException

setPrecedingBytesメソッドで入力されたバイト列の処理中に問題が発生しました。または、入力ストリーム中に、コード変換の続行が不能となるデータを検出しました。本例外の発生後に、再度コード変換を行う場合は、initializeメソッドを呼び出してConverterの内部情報を初期化する必要があります。

ConvertingException

変換元コードから変換先コードへの変換処理中に問題が発生しました。

java.lang.NullPointerException

パラメタにNULLが指定されました。

java.io.IOException

ストリーム入出力にエラーがありました。

getStatistics

宣言
public Converter.Statistics getStatistics()
機能説明

コード変換統計情報を返します。本メソッドが返す情報は、Converterクラスのインスタンスが生成されてからの累計で、initializeメソッドまたはinitStatisticsメソッドが呼び出されるまで初期化されません。

復帰値

コード変換統計情報を含むStatisticsクラスのインスタンスを返却します。詳しくは、“4.2.5 Converter.Statisticsクラス”を参照してください。

initialize

宣言
public void initialize()
機能説明

Converterの内部情報を初期化します。本メソッドを呼び出すことで、新たなストリームの処理を開始することができます。getStatisticsメソッドで返される統計情報、および先行バイト列も初期化されます。

initStatistics

宣言
public void initStatistics()
機能説明

コード変換統計情報を初期化します。本メソッドで初期化されるのは、getStatisticsメソッドで返される統計情報だけで、その他の情報は初期化されません。

setPrecedingBytes

宣言
public void setPrecedingBytes(byte[] bytes)
機能説明

指定したバイト列を先行バイト列として設定します。例えば、シフトコードがついていないJEFのストリームで、シフト状態を指定してから変換を行いたい場合に、シフトコードを先行バイト列として設定します。

設定した先行バイト列は、convertメソッドで指定した入力ストリームの前に付加されて処理されます。convertメソッドの呼び出しによって、先行バイト列はクリアされます。また、bytesパラメタにNULLを指定した場合、すでに設定されている先行バイト列はクリアされます。

先行バイト列の処理中に不正エンコーディングを検出、または変換処理が停止するような現象が発生した場合、convertメソッドがIllegalInputDataExceptionを発生させます。

パラメタ
bytes

先行バイト列を指定します。nullを指定した場合、すでに設定されている先行バイト列はクリアされます。