// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= NetBeans IDEでの注釈プロセッサのサポート、パートI: プロジェクトLombokの使用
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: NetBeans IDEでの注釈プロセッサのサポート、パートI: プロジェクトLombokの使用 - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, NetBeans IDEでの注釈プロセッサのサポート、パートI: プロジェクトLombokの使用

image::images/netbeans-stamp-80-74-73.png[title="このページの内容は、NetBeans IDE 7.2、7.3、7.4および8.0に適用されます"]


* *カスタム注釈のためのプロジェクトLombokの使用*

カスタム注釈がNetBeans IDEでどのように機能するかを示すために、複数のJavaコード要素(取得メソッド、設定メソッド、コンストラクタなど)を自動生成するのに便利な、プロジェクトLombokを使用します。この機能の詳細は、link:http://projectlombok.org/[+プロジェクトLombokのWebサイト+]を参照してください。ただし、プロジェクトLombokに含まれる一部の機能は、開発環境によって機能しない場合があります。

*このチュートリアルを完了するには、次のソフトウェアとリソースが必要です。*

|===
|ソフトウェアまたはリソース |必須バージョン 

|link:https://netbeans.org/downloads/index.html[+NetBeans IDE+] |7.2, 7.3, 7.4, 8.0 

|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+Java Development Kit (JDK)+] |バージョン7または8 

|link:http://code.google.com/p/projectlombok/downloads/list[+lombok.jar+] |v1.12.4以降 
|===


== Javaプロジェクトの新規作成

この課題では、単純なJavaプロジェクトと、動作している注釈を示す ``MyBooks.java`` という名前のクラスを作成します。

1. メイン・メニューから*「ファイル」>「新規プロジェクト」*を選択して新規プロジェクト・ウィザードを開きます。
2. 「Java」カテゴリで「Javaアプリケーション」プロジェクト・タイプを選択します。「次」をクリックします。
3. ウィザードの名前と場所ページで、プロジェクト名として* ``「TestAnn」`` *と入力します。
4. 「メイン・クラスの作成」フィールドに「* ``testann.TestBooks`` *」と入力して、デフォルトのクラス名を置き換えます。「終了」をクリックします。
image::images/newproj.png[title="NetBeans IDEでの新しいJavaプロジェクトの作成"]

「終了」をクリックすると、IDEによってJavaアプリケーション・プロジェクトが作成され、 ``TestBooks.java`` クラスがエディタに表示されます。ここで、新しいプロジェクトが「プロジェクト」ウィンドウに表示され、 ``TestBooks.java`` クラスが「ソース・パッケージ」ノードの下にある ``testann`` パッケージに含まれていることが確認できます。



. 「プロジェクト」ウィンドウで「 ``testann`` 」パッケージ・ノードを右クリックし、「新規」>「Javaクラス」を選択します。


. 「クラス名」に「* ``MyBooks`` *」と入力し、そのクラスが ``testann`` パッケージ内に作成されることを確認します。「終了」をクリックします。

「終了」をクリックすると、IDEによって新しいクラスがエディタに表示されます。



. ソース・エディタで、次の3つのフィールドを ``MyBooks.java`` に追加します。

[source,java]
----

package testann;

public class MyBooks {   
    *private int year; //fields
    private String title;
    private String author;*

}
----


. 挿入カーソルをクラス宣言に置き、[Ctrl]-[Space]を押して、エディタのコード補完サポートを呼び出します。


. コード補完リストで「 ``MyBooks (int year, String title, String author) - generate`` 」を選択して、 ``MyBooks.java`` のコンストラクタを生成します。
image::images/generate-constructor.png[title="コンストラクタを生成するためのコード補完"]


. 変更を保存します。


== プロジェクトのカスタム注釈(lombok.jar)の有効化

この課題では、プロジェクトの「プロパティ」ウィンドウを変更して、プロジェクトのクラスパスにライブラリを追加し、エディタでの注釈処理を有効にします。

1. link:http://code.google.com/p/projectlombok/downloads/list[+lombok.jar+]ファイルをダウンロードして、システムに保存します。
2. 「 ``TestAnn`` 」プロジェクトのノードを右クリックして、「プロパティ」を選択します。
3. 「プロジェクト・プロパティ」ダイアログで「ライブラリ」カテゴリを選択します。
4. 「コンパイル」タブで「JAR/フォルダの追加」をクリックし、ダウンロードした ``lombok.jar`` ファイルを指定します。
image::images/properties1.png[title="「プロパティ」ウィンドウ内の「ライブラリ」カテゴリ"]

「コンパイル」タブで追加されたリソースは、link:http://download.oracle.com/javase/6/docs/technotes/tools/windows/javac.html#options[+Javaコンパイラ+]の ``-classpath`` オプションに相当します。 ``lombok.jar`` は、注釈定義と注釈プロセッサの両方を含む単一のJARファイルであるため、これをプロジェクトのクラスパス(つまり「コンパイル」タブ)に追加する必要があります。



. 「プロジェクト・プロパティ」ウィンドウで「コンパイル」カテゴリを選択します。


. 「注釈処理を有効にする」チェックボックスが選択されていることを確認し(デフォルトでは有効)、「エディタでの注釈処理を有効にする」チェックボックスを選択します。
image::images/properties2.png[title="「プロパティ」ウィンドウ内の「コンパイル」カテゴリ"]

「注釈処理を有効にする」チェックボックスを選択すると、プロジェクトのビルドおよびコンパイル時に注釈処理が有効になります。このチェックボックスが選択されていないと、 ``-proc:none`` オプションがJavaコンパイラに渡され、どのような注釈処理もされずにコンパイルが実行されます。このため、コードで注釈を処理する場合は、「注釈処理を有効にする」チェックボックスを選択する必要があります。

「エディタでの注釈処理を有効にする」チェックボックスを選択することにより、エディタに注釈処理の結果が表示されるようになります。注釈プロセッサによって生成されたどの追加アーティファクト(クラス、メソッド、フィールドなど)もIDEエディタに表示されるようになり、コード補完、「ナビゲータ」、「型に移動」、「使用状況を検索」などで使用できるようになります。



. 「プロジェクト・プロパティ」ウィンドウで「OK」をクリックして、 ``MyBooks.java`` ファイルに戻ります。

「プロジェクト」ウィンドウで「ライブラリ」ノードを展開すると、 ``lombok.jar`` がプロジェクト・ライブラリとして表示されるようになっていることがわかります。

image::images/projects-window.png[title="「プロジェクト」ウィンドウ内の「ライブラリ」ノード"]


== Lombokカスタム注釈を使用したアプリケーションの記述

1.  ``MyBooks.java`` ファイルで、 ``MyBooks`` クラス定義の前に「 ``@Data`` 」と入力します。 ``@Data`` は、Javaクラスのボイラープレート・コード(すべてのフィールドの取得メソッド、finalではないすべてのフィールドの設定メソッド、およびクラスのフィールドを含む適切な ``toString`` 、 ``equals`` 、 ``hashCode`` 実装)を生成する注釈です。

プロジェクトLombokがサポートする注釈の詳細は、Lombokのlink:http://projectlombok.org/features/index.html[+機能の概要+]を参照してください。



. エディタの左マージンにあるヒントをクリックして、 ``lombok.Data`` のインポートを追加します。
image::images/import-lombok.png[title="lombokをインポートするためのエディタ内のヒント"]

この結果、エディタのコードは次の例のようになっているはずです。


[source,java]
----

package testann;

import lombok.Data;


@Data
public class MyBooks {

    private int year; //fields
    private String title;
    private String author;

    public MyBooks(int year, String title, String author) {
        this.year = year;
        this.title = title;
        this.author = author;
    }
}
----

取得メソッド、設定メソッド、toStringなどの必要なコード・アーティファクトが生成されているのが「ナビゲータ」ウィンドウで確認できます。 ``@Data`` 注釈によって、一般的なクラスに必要なすべてのボイラープレート・コードが生成されました。

image::images/nav.png[title="プロジェクト・メンバーが表示された「ナビゲータ」ウィンドウ"]

コード補完ウィンドウを呼び出すと([Ctrl]-[Space])、生成されたアーティファクトも選択可能になっているのが確認できます。ここで、プロジェクトがコンパイルされ、生成されたアーティファクトをプログラムの他の部分からコールできることを確認します。



. _main_メソッドで ``TestBooks.java`` ファイルを開き、次のコード(太字)を追加して、 ``MyBooks`` クラスの新規オブジェクトを作成します。

[source,java]
----

package testann;

public class TestBooks {

    public static void main(String[] args) {
        *MyBooks books = new MyBooks(2009, "My Beautiful Dream", "John Smith");*
    }
}
----


.  ``books`` 変数の値を出力するための次のコードを追加します。

値を返すため、 ``lombok.jar`` によって自動生成された取得メソッドをコールします。入力中に、自動生成されたアーティファクトをコード補完ウィンドウから使用できます。


[source,java]
----

package testann;

public class TestBooks {

    public static void main(String[] args) {
        MyBooks books = new MyBooks(2009, "My Beautiful Dream", "John Smith");
        *System.out.println("Year: " + books.getYear() + ", Title: " + books.getTitle() +  ", Author: " + books.getAuthor());*
    }
}
----


. 変更を保存します。


. 「プロジェクト」ウィンドウでプロジェクト・ノードを右クリックし、「実行」([F6])を選択します。

このアプリケーションを実行すると、アプリケーションが正常にコンパイルされたことを示す次の出力が表示されるはずです。

image::images/output.png[title="アプリケーションを実行した後の「出力」ウィンドウ"]

Lombok注釈プロセッサによって生成されたアーティファクトが、プログラムの他の部分からアクセス可能であることが確認できます。


== 次の手順

* Java SEのドキュメント - link:http://download.oracle.com/javase/6/docs/technotes/guides/language/annotations.html[+注釈+]
* Java SEのチュートリアル - link:http://download.oracle.com/javase/tutorial/java/javaOO/annotations.html[+注釈+]
link:/about/contact_form.html?to=3&subject=Feedback:%20Using%20the%20Annotation%20Processors%20Support%20in%20NetBeans%20IDE[+このチュートリアルに関するご意見をお寄せください+]
