付録I.1 文字コード変換UOCのjarファイルの開発

文字コード変換UOCは,Cosminexus サービスプラットフォームが提供するjarファイルを使用して開発します。

文字コード変換UOCの開発に必要なjarファイルに定義されているインターフェースおよび例外クラスは,次の場所に格納されています。

<Cosminexusのインストールディレクトリ>¥CSC¥lib¥cscdt_uoc.jar

注意
  • 開発した文字コード変換UOCのjarファイルは,任意のディレクトリに格納してください。また,文字コード変換UOCをコンパイルするときは,cscdt_uoc.jarをクラスパスに含めてください。
  • 文字コード変換UOCの実行時に確保したリソースは,処理が終了しても保持し続けるため,システム全体に高い負荷が掛かった場合に,Javaヒープ不足などが原因でOutOfMemoryErrorが発生することがあります。そのため,OutOfMemoryErrorが発生したときに適切にリソースを解放する処理や,ロールバックなどのエラー処理を実装しておく必要があります。
<この項の構成>
(1) インターフェース
(2) 例外クラス

(1) インターフェース

文字コード変換UOCのインターフェースを次に示します。

インターフェース名
CSCOwnCodeConverterインターフェース
説明
文字コード変換UOCを実装するためのインターフェースです。
CSCOwnCodeConverterのパッケージ名は,jp.co.Hitachi.soft.csc.dt.uoc.CSCOwnCodeConverterです。
形式

public class OwnCodeConverter implements CSCOwnCodeConverter
{
 public void setProperties(final Properties properties)
          throws CSCOwnCodeConverterException;
 public char[] ownCodeToUnicode(final byte[] inBuffer)
          throws CSCOwnCodeConverterException;
 public byte[] unicodeToOwnCode(final char[] inBuffer)
          throws CSCOwnCodeConverterException;
 public int available(final byte[] inBuffer)
          throws CSCOwnCodeConverterException;
}

メソッド
CSCOwnCodeConverterインターフェースのメソッドを次の表に示します。
メソッド名説明
setPropertiesメソッド独自定義ファイルの定義内容を文字コード変換UOCに渡すためのメソッドです。
ownCodeToUnicodeメソッド独自文字コードの文字列をUnicodeに変換するメソッドです。
unicodeToOwnCodeメソッドUnicode(UTF-16)の文字列を独自文字コードに変換するメソッドです。
availableメソッド文字コード変換時に変換できる文字列のバイト数を返すメソッドです。
文字コード変換UOCからの各メソッドの呼び出し順序を次の図に示します。

図I-1 文字コード変換UOCからの各メソッドの呼び出し順序

[図データ]
  1. インスタンス生成
    変換前の電文を受け取ったあと,データ変換によって文字コード変換UOCのインスタンスを生成します。
  2. setPropertiesメソッド
    独自定義ファイルの定義内容を文字コード変換UOCに渡します。このメソッドは,文字コード変換UOC開始時に一度だけ呼ばれます。
  3. ownCodeToUnicodeメソッド,unicodeToOwnCodeメソッド,availableメソッド
    それぞれのメソッドは,文字コード変換UOC実行時に文字コード変換から呼ばれます。メソッドの実行順序は電文フォーマットに依存します。
    • ownCodeToUnicodeメソッド
      このメソッドで独自文字コードの文字列をUnicodeに変換します。
    • unicodeToOwnCodeメソッド
      このメソッドでUnicode(UTF-16)の文字列を独自文字コードに変換します。
    • availableメソッド
      このメソッドは,文字コード変換時に変換できる文字列のバイト数を返します。
(a) setPropertiesメソッド
説明
独自定義ファイルの定義内容を文字コード変換UOCに渡します。
形式

public void setProperties(final Properties properties)
        throws CSCOwnCodeConverterException;

パラメタ
properties:
独自定義ファイルの定義内容が格納されます。
注意事項
次の場合,setPropertiesメソッドの引数は必ずnullになります。setPropertiesメソッドの引数がnullの場合でも,文字コード変換UOCがエラーにならないように実装してください。
  • 独自定義ファイルが存在しない(定義されていない)場合
  • カスタム受付以外の受付(独自定義ファイルを定義できない受付)から文字コード変換UOCを実行した場合
  • カスタムアダプタ以外のアダプタ(独自定義ファイルを定義できないアダプタ)から文字コード変換UOCを実行した場合
例外
CSCOwnCodeConverterException:
文字コード変換処理中に異常が発生したため,データ変換処理全体を中断しました。
戻り値
なし。
(b) ownCodeToUnicodeメソッド
説明
独自文字コードの文字列をUnicodeに変換します。
形式

public char[] ownCodeToUnicode(final byte[] inBuffer)
        throws CSCOwnCodeConverterException;

パラメタ
inBuffer:
独自文字コードの文字列を格納したバイト配列のバッファが格納されます。このバッファは読み込み専用のため,編集はできません。
例外
CSCOwnCodeConverterException:
文字コード変換処理中に異常が発生したため,データ変換処理全体を中断しました。
戻り値
Unicodeに変換した文字列を格納した文字配列のバッファを返します。
(c) unicodeToOwnCodeメソッド
説明
Unicode(UTF-16)の文字列を独自文字コードに変換します。
形式

public byte[] unicodeToOwnCode(final char[] inBuffer)
        throws CSCOwnCodeConverterException;

パラメタ
inBuffer:
Unicodeの文字列を格納した文字配列のバッファが格納されます。
このバッファは読み込み専用のため,編集はできません。
例外
CSCOwnCodeConverterException:
文字コード変換処理中に異常が発生したため,データ変換処理全体を中断しました。
戻り値
独自文字コードに変換した文字列を格納したバイト配列バッファを返します。
(d) availableメソッド
説明
文字コード変換時に変換できる文字列のバイト数を返します。
形式

public int available(final byte[] inBuffer)
        throws CSCOwnCodeConverterException;

パラメタ
inBuffer:
独自文字コードの文字列を格納したバイト配列のバッファが格納されます。このバッファは読み込み専用のため,編集はできません。
例外
CSCOwnCodeConverterException:
文字コード変換処理中に異常が発生したため,データ変換処理全体を中断しました。
戻り値
正常に変換できる文字列のバイト数を格納します。ただし,変換できない文字がある場合は,その文字の前の文字までのバイト数を格納します。

(2) 例外クラス

文字コード変換UOCの開発時に発生する例外クラスを次に示します。

クラス名
CSCOwnCodeConverterExceptionクラス
説明
文字コード変換処理中に異常が発生した場合に送出する例外です。
この例外が発生した場合は,データ変換処理全体を中断します。