About

ドキュメント

プロジェクト文書

Built by Maven

概要

Java6から導入された Pluggable Annotation Processing API (JSR 269) を利用すると、ソースコードの自動生成や検証をコンパイル時に行うことができます。

DomaではこのAPIを利用し、@Entityや@Daoと言ったアノテーションが注釈されたクラスやインタフェースを処理し、必要なクラスを自動生成します。 また、注釈されたクラスやインタフェースの検証を行い、Domaの規約に従っていないソースコードがある場合は エラーメッセージをIDE(Eclipseなど)のエディタやjavacを実行したコンソール上に表示します。

オプション

注釈処理にはオプションを与えることができます。 Domaで定義しているオプションには次のものがあります。 必要に応じて使用してください。

key 説明 デフォルトの値
dao.package @Daoが注釈されたインタフェースの実装クラスが生成されるパッケージ。 何らかの値を指定した場合、dao.subpackageの指定よりも優先される。 @Daoが注釈されたインタフェースと同じパッケージ
dao.subpackage @Daoが注釈されたインタフェースの実装クラスが生成されるサブパッケージ。 dao.packageに値を指定していない場合にのみ有効。 @Daoが注釈されたインタフェースのパッケージが「example.dao」で、ここに指定した値が「impl」の場合、 生成されるクラスのパッケージは「example.dao.impl」となる。
dao.suffix @Daoが注釈されたインタフェースの実装クラスの名前のサフィックス。 @Daoが注釈されたインタフェースの単純名が「EmployeeDao」で、ここに指定した値が「Bean」の場合、 生成されるクラスの単純名は「EmployeeDaoBean」となる。 Impl
debug 注釈処理のデバッグ情報をログ出力するかどうか。「true」の場合、ログ出力を行う。 false
entity.suffix @Entityが注釈されたクラスから生成される内部的なクラス名のサフィックス。 @Entityが注釈されたインタフェースの単純名が「Employee」で、ここに指定した値が「Meta」の場合、 生成されるクラスの単純名は「EmployeeMeta」となる。 アプリケーションから直接使用するクラスではないため、通常は使用する必要性がない。 _ (アンダースコア)
domain.suffix @Domainが注釈されたクラスから生成される内部的なクラス名のサフィックス。 @Domainが注釈されたインタフェースの単純名が「Salary」で、ここに指定した値が「Meta」の場合、 生成されるクラスの単純名は「SalaryMeta」となる。 アプリケーションから直接使用するクラスではないため、通常は使用する必要性がない。 _ (アンダースコア)

Eclipseでのオプション指定

Ecipseでは、プロジェクトのプロパティの「Annotation Processing」の項目でオプションを登録します。

Eclipseでのオプション指定

上記の図では、わかりやすさのためにValueを持たないものまで登録していますが、 実際には必要なものだけで問題ありません。

javacでのオプション指定

-Aオプションにより登録します。詳細はjavacのドキュメントを参照してください。

Antでのオプション指定

javacタスクのcompilerargタグのlineパラメータを使用します。

<javac fork="yes" srcdir="src" compiler="javac1.6"
	classpathref="classpath" destdir="target" debug="on" encoding="UTF-8" >
	<compilerarg line="-Adto.generation=true -Adto.package=hoge.dto"/>
</javac>

Mavenでのオプション指定

maven-compiler-pluginのcompilerArgumentタグを使用します。

<plugin>
	<artifactId>maven-compiler-plugin</artifactId>
	<configuration>
		<source>1.6</source>
		<target>1.6</target>
		<encoding>UTF-8</encoding>
		<compilerArgument>-Adao.subpackage=impl</compilerArgument>
	</configuration>
</plugin>

指定したいオプションが1つの場合は問題ありませんが、複数のオプションはMavenの制限により指定できません。