Jiemamyってなんぞ(5) - Jiemamy API

前回までが、簡単なJiemamy開発モデルのご紹介でした。

繰り返しになりますが、Jiemamy Eclipseプラグインmavenプラグインは、このような開発を助けるための補助ツールです。

それを踏まえて、今回はJiemamy APIについて。

JiemamyによるDB構成情報(Jiemamyモデル)は、基本的にERダイアグラムエディタで作成・編集され、このエディタのエクスポート機能やmavenプラグインによってSQLに変換されます。

しかし、以前に書いた通りJiemamyモデルファイルはXMLなので、手で編集したり、また、DOMやSAX等によるプロセッシングも可能です。

が、さすがにJiemamyモデルをDOMで操作しようという人は少ないでしょう。Jiemamy Projectでは、このJiemamyモデルを操作するAPI仕様を定義*1し、そのJavaによる実装を提供しています。

せっかく作ったJiemamyモデルファイルなのに、Jiemamyモデルエディタからしか操作できないなんて悲しすぎる。仕様をオープンにして、このモデルをどこからでも操作できるように解放しよう、という意図です。

このAPIにより、Jiemamyモデルの新規作成や編集、SQLへの変換などをどこからでも*2呼び出すことができます。

この仕様及び実装は、クラスライブラリとして、Apache License v2.0により配布しています。

このクラスライブラリは、Jiemamyモデルエディタ(ER図エディタ)で使っているロジックとまったく同じです。というか、Jiemamyモデルエディタ内のロジックをEclipseに依存しないように切り出して、独立したライブラリとしたもの、とも言えます。卵が先か鶏が先かですが、Jiemamyモデルエディタは、JiemamyAPIを利用したアプリケーションの一例です。

このAPIを利用して、NetBeans用のJiemamyモデルエディタを作ることもできるでしょう。id:happy_ryoが必ずや作ってくれると信じています。信じています。大事なことなので二回言いました。

そのほかにも、warに組み込んで「warをwebappディレクトリに配置して、最初にアクセスされた時、自動的にSQLをDBに適用して、環境構築を行う」なんていうシステムも計画中です。

また「動的にテーブルを作ったりするWebアプリ」とか、気持ち悪いものも簡単に作れそうですw

*1:DOMのような仕様書は作れていませんが…。Javaインターフェイスとして仕様を定義しています。

*2:まぁ現在のところJava実装しかありませんから、Java以外から呼びたければ、その言語における実装を作るなり何なりの工夫が必要になりますが。