bm-asn1 (0.24) | 2012-10-12 14:45 |
BitMeister ASN.1 library for Java(以下、BM ASN.1)は、ASN.1構文で規定されたデータ型をJavaクラスにマッピングして、各種の処理を行うためのクラスライブラリです。BM ASN.1には、ASN.1型をJavaクラスで表現するデータ型クラス、ASN.1型に付随する情報をクラスやフィールドに付与するアノテーションインターフェース、ASN.1型データを処理するランタイム処理クラスなどが含まれています。
BM ASN.1は、ASN.1型のデータをできるだけ一般的なJavaオブジェクト(POJO)と同様に扱えるように配慮して設計されています。ASN.1型データを扱うプログラムを簡潔なコードで記述することができ、ASN.1で規定されたプロトコルを扱うシステムの効率的な開発を可能にします。
BM ASN.1では、ASN.1型定義をクラスの継承関係で表現し、ASN.1型に付随する各種の情報はアノテーションで付与します。ユーザー定義のASN.1型クラスは、ビルトインASN.1型クラスを継承したクラスにいくつかのアノテーションを付与するだけで作成することができ、基本的に特殊なメソッドやフィールドを作成する必要はありません。各ASN.1型クラスには、clone, equals, toStringなどのObjectクラスのメソッドが既に実装されていて、通常のJavaオブジェクトと透過的に扱うことができます。
構造型(SET,SEQUENCE,CHOICE)の各要素は、ASN.1型クラスのフィールドにマッピングします。構造型への値の設定をフィールドへの代入で行えるため、ASN.1型を扱うJavaコードが簡潔に記述できるだけでなく、データ型の不一致をコンパイル時に検出することができます。構造型の要素への値の設定の際に要素名を文字列で指定するASN.1ライブラリでは、指定する要素名のtypo誤りなどが実行時エラーとなるまで分からないことがありますが、そのような誤りも発生しにくくなっています。
ライブラリの簡単な使い方は、こちらを参照してください。
詳細な解説は、今後アップデートしていく予定です。
bm-asn1 (0.24) | 2012-10-12 14:45 |