DoCoMoProfile-2.0と標準規格としてのMID Profile

DoCoMoProfile-2.0のAPIリファレンスを見ていて、思わず苦笑してしまった点があります。それはcom.nttdocomo.langパッケージにIllegalStateExceptionクラスが設けられている点です。これはJava 2 Platform, Standard Edition(J2SE)ではjava.langパッケージに存在する同名のクラスと同様の目的で使用します。しかしながら、Java 2 Platform, Micro Edition, Connected Limited Device Configuration(CLDC)ではこのクラスは省略されています。このため、DoCoMoProfile-2.0ではこのパッケージに設けたわけですが..。

(日本では)事実上DoCoMoProfileと競合するMobile Information Device Profile(MID Profile)では同様のクラスをJ2SEと同じjava.langパッケージに用意しています。これはJava標準仕様として策定されたMID Profileでは、既存のパッケージ内に存在するクラスを厳密なサブセットととして同じクラス名で設置することができるためです。MID ProfileではこのIllegalStateExceptionクラスの他にjava.utilパッケージ内にTimerクラスおよびTimerTaskクラスをサブセット化したものを設置しています。また、CLDCのGeneric Connectionフレームワーク用のパッケージであるjavax.microedition.ioパッケージの中にHttpConnectionインターフェースも設置しています。これもMID Profileの一部であり、CLDCの一部ではありません。

しかし、私的なプロファイルであるDoCoMoProfileではこれができません。このため同じ目的の同じ名前のクラスが別のパッケージに存在しています。ちょっと不思議な雰囲気です..。

また、私が以前のコラムでDoCoMoProfile-1.0の仕様に対していくつか変な点を指摘した部分がDoCoMoProfile-2.0では修正されています。例えば、com.nttdocomo.ioパッケージのHttpConnectionインターフェースに定義されている定数のいくつかが不適切であり、またHTTP/1.1のために必要(FOMAはHTTP/1.1)でありながら定義されていない定数があると指摘していた部分や、同インターフェースがjavax.microedition.ioパッケージのConnectionインターフェースから継承したclose()メソッドの実装のうち、いくつかの機種のものでGeneric Connectionフレームワーク規約を満たしていないものがあると指摘した部分などです。NTTドコモの方がこのページを見て修正したわけではないでしょうが、この様に細かい点もDoCoMoProfile-2.0では修正されています。

というわけで、今回はAPIリファレンス一つでもいろいろと垣間見えるものがあって面白いですなぁ、という話でした。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です