DBFluteのEclipseコード補完

どう打ち込めばいい?

もし補完テンプレートが設定されていなければ、まず設定しましょう。

補完文字列を打ってcontrol+space補完

エディター上で補完文字列を打ってcontrol+space補完すると、コードが補完されます。

e.g. DBFluteオリジナルの_llの補完テンプレート @Java
memberBhv.selectList(_ll) // _ll, control+space, enter
 ↓↓↓
memberBhv.selectList([var] -> {
    [var].[object]
})

Java実装の補完文字列一覧

DBFlute関係なく利用できる補完です。★マークのものがオススメです。

Java8, Lambda/Stream系

_a
Java8, Lambda式の矢印 ->
_li (えるあい)
Java8, Lambda式の一行スタイル (Lambda + Inline) ★★★
_ll (えるえる)
Java8, Lambda式の一行スタイル (Lambda + Linefeed) ★★★
_bili
Java8, 引数2つ(Bi)のLambda式の一行スタイル (Bi + Lambda + Inline)
_bill
Java8, 引数2つ(Bi)のLambda式の改行スタイル (Bi + Lambda + Line)
_kvli
Java8, MapのforEach()想定のkey-value引数のLambda式の一行スタイル
_kvll
Java8, MapのforEach()想定のkey-value引数のLambda式の改行スタイル
_foreach
Java8, ListのforEach()メソッド補完
_scolist
Java8, Stream APIの .collect(Collectors.toList())
_scomap
Java8, Stream APIの .collect(Collectors.toMap(...))

Java, コメント系

_todo
Java, todoコメント // TODO jflute xxx (2021/07/23) ★★★
_trev
Java, レビューコメント // TODO you xxx by jflute (2021/07/23)
_docnotnull
Java, JavaDocの@paramや@returnでの (NotNull) ★★
_docnullall..
Java, JavaDocの@paramや@returnでの (NullAllowed) ★★
_coaaa
Java, UnitTestのArrange,Act,Assertコメント
_cofornow
Java, 今のところコメント // #for_now jflute xxx (2021/07/23)
_cohope
Java, 希望コメント // #hope jflute xxx (2021/07/23)
_coneedsfix
Java, 直す必要ありコメント // #needs_fix jflute xxx (2021/07/23)
_cothinking
Java, 悩ましい考えてるコメント // #thiking jflute xxx (2021/07/23)
_reardate
Java, 日付だけのコメント // (2021/07/23)
_rearuser
Java, ユーザー名だけのコメント // by jflute
_taacce
Java, タグコメント Accessor
_ta...
Java, その他タグコメントいっぱい

Java, 変数定義系

_prifin
Java, private final ${variableType} ${variableName}; ★★
_profin
Java, protected final ${variableType} ${variableName};
_pubfin
Java, public final ${variableType} ${variableName};
_pubstacla
Java, public static class ${variableName} ...
_pubstafin
Java, public static final ${variableType} ${variableName}
_logger
Java, Slf4j の static final Logger 定義 ★★
_clogger
Java, Commons Logging の static final Logger 定義

Java, 例外系

_tharg
Java, throw new IllegalArgumentException(...)
_thstate
Java, throw new IllegalStateException(...)

DBFlute装の補完文字列一覧

DBFlute実装における補完です。

_specify
DBFlute, ${var}.specify()
_query
DBFlute, ${var}.query()
_order
DBFlute, .addOrderBy_${columnName}
_test
UTFlute, testメソッド補完、Arrange,Act,Assert付き
_exmeb
DBFlute, ExceptionMessageBuilderのまるごとテンプレート

Java8, Lambda/Stream系

代表的なものだけ

シンプルLambda式を補完 (_li, _ll) ★★★

_li (Lambda Inline) (えるあい)

e.g. 一行スタイルのLambdaを補完 @Java
memberList.stream().map(_li) // control+space, enterどーん!

 ↓↓↓

memberList.stream().map([var] -> [var].[object]) // 引数名入れて実装の続きを

_ll (Lambda Linefeed) (えるえる)

e.g. 改行スタイルのLambdaを補完 @Java
memberBhv.selectList(_ll) // control+space, enterどーん!

 ↓↓↓

memberBhv.selectList([var] -> { // 引数名入れて実装の続きを
    [var].[object]
})

Lambda引数がない場合は、var部分を () に修正しましょう。

Lambdaを一行で書きたい場面か?改行で書きたい場面か?で "えるあい" か "えるえる" を使い分けると良いでしょう。 (DBFluteのConditionBeanはほとんど改行スタイルが向いているので "えるえる" が多くはなります。一方で、Stream APIは "えるあい" が多くなるでしょう)

引数2つのLambda式を補完 (_bili, _bill)

_bili (Lambda Bi Inline), _bill (Lambda Bi Linefeed)

e.g. 一行スタイルの引数2つのLambdaを補完 @Java
seaList.stream().reduce("harbor", accumulator, combiner)

 ↓↓↓

// control+space, enterどーん!
seaList.stream().reduce("harbor", _bili, combiner)

 ↓↓↓

// 実装の続きを
seaList.stream().reduce("harbor", (first, second) -> , combiner)

ListのforEach()を補完 (_foreach)

_foreach

e.g. ListのforEach()を補完 @Java
List<Sea> seaList = ...
_fore... // control+space, enterどーん!

 ↓↓↓

seaList.forEach([object] -> { // 引数名入れて実装の続きを

});

StreamのCollections.toList()を補完 (_scolist)

_scolist (Stream COLlectors to LIST)

e.g. ListのforEach()を補完 @Java
seaList.stream().filter(...)_scoli... // control+space, enterどーん!

 ↓↓↓

seaList.stream().filter(...).collect(Collectors.toList())

Java, コメント系

代表的なものだけ

todoコメントを補完 (_todo) ★★★

_todo (TODO)

e.g. todoコメントを補完 @Java
_tod... // control+space, enterどーん!

 ↓↓↓

// TODO jflute [カーソル位置はここ] (2021/07/25)

ソースコード上に気軽にtodoコメントを入れてちょっとした保留事項などを管理できると良いです。 ただ、後々「なんだこのtodoコメント?誰の?」と放置されてtodoノイズになりがちです。 (書いた本人ですら忘れてしまうことも多々あり)

todoコメントを付けるなら名前と日付を入れておきましょう。補完なら手間はありません。

todoレビューコメントを補完 (_trev)

_trev (Todo の REView)

e.g. todoレビューコメントを補完 @Java
_tre // control+space, enterどーん!

 ↓↓↓

// TODO [you] [message] by jflute (2021/07/25)

[you]にお相手の名前を入れて、[message]でレビューを書きます

javatryやDBFluteハンズオンのjfluteレビューでよく使います。(業務の中ではあまり使いませんが...)

JavaDocの (NotNull) を補完 (_docnotnull)

_docnotnull (javaDOC の NOTNULL)

e.g. @param の (NotNull) を補完 @Java
/**
 * @param sea 海ですよ _docno... // control+space, enterどーん!
 */

 ↓↓↓

/**
 * @param sea 海ですよ (NotNull)
 */

JavaDocの (NullAllowed) を補完 (_docnullallowed)

_docnullallowed (javaDOC の NULLALLOWED)

e.g. @return の (NullAllowed) を補完 @Java
/**
 * @return 海ですよ _docnu... // control+space, enterどーん!
 */

 ↓↓↓

/**
 * @return 海ですよ (NullAllowed)
 */

UnitTestの Arrange,Act,Assert を補完 (_coaaa)

_coaaa (COmment の Ararnge,Act,Assert)

e.g. @return の (NullAllowed) を補完 @Java
test_ju... まず、JUnit5(jupiter)用のテストメソッドを補完して...

 ↓↓↓

@Test
void [testName]() throws Exception {
    _coaa... // control+space, enterどーん!
}

 ↓↓↓

@Test
void [testName]() throws Exception {
    // ## Arrange ##
    [カーソル位置はここ]

    // ## Act ##

    // ## Assert ##
}

#thinking のコメントを補完 (_cothinking)

_cothinking (COmment の THINKING)

e.g. @return の (NullAllowed) を補完 @Java
_coth... // control+space, enterどーん!

 ↓↓↓

// #thinking jflute [カーソル位置はここ] (2021/07/25)

実装しようとしたけど保留してるとか、実装したけど最善かどうか迷ってるとか、自分自身も含めて後の人に伝えておいたほうが良い悩みを書いておくと良いでしょう。

タグコメントを補完 (_taacce)

_taacce (TAg comment ACCEssor)

e.g. @return の (NullAllowed) を補完 @Java
_taacce... // control+space, enterどーん!

 ↓↓↓

// ===================================================================================
//                                                                            Accessor
//                                                                            ========

タグコメントがよくわからない方は、サンプルコードを見てみましょう。

様々なタグコメント補完が用意されています。業務的な区分けをするときは、何か適当に補完してからタグ名部分を書き換えてしまいましょう。 補完テンプレートで用意されているのはあくまで定型的なものだけです。

Java, 変数定義系

代表的なものだけ

private finalのインスタンス変数を補完 (_prifin) ★★

_prifin (PRIvate の FINal)

e.g. private finalのインスタンス変数を補完してコンストラクタまで @Java
_prif... // control+space, enterどーん!

 ↓↓↓

private final [variableType] [variableName]; // 型と名前を入れる

 ↓↓↓

private final String sea;
// このへんで alt + command + S して、Generate Constructor using Fields...
// (右クリックメニューの Source からでもOK)

 ↓↓↓

private final String sea;

public SeaBean(String sea) { // コンストラクタが自動生成される
    super();
    this.sea = sea;
}

主にImmutableのクラスを作るときなどに役に立ちます。

この補完でfinalのインスタンス変数を作った後に、今度はコンストラクタを自動生成する補完を使うと良いでしょう。 直接のショートカットではありませんが、できるだけ早く補完する方法があります。

Eclipse Shortcut constructor using fields

public static finalの定数を補完 (_pubstafin)

_pubstafin (PUBlic の STAtic FINal)

e.g. public static finalの定数を補完 @Java
_pubstaf... // control+space, enterどーん!

 ↓↓↓

public static final [variableType] [variableName] = [value];

Slf4j の logger変数を補完 (_logger) ★★

_logger (LOGGER)

e.g. Slf4j の logger変数を補完 @Java
_logg... // control+space, enterどーん!

 ↓↓↓

private static final Logger logger = LoggerFactory.getLogger(Sea.class);

引数の.classは、現在のクラスが自動的に補完されます。

Java, 変数定義系

代表的なものだけ

引数例外のthrowを補完 (_tharg)

_tharg (THrow illegal ARGument exception)

e.g. 引数例外のthrowを補完 @Java
public void showMystic(String hangar) {
    ifnu // まず ifNull の補完をして...

 ↓↓↓

public void showMystic(String hangar) {
    if (hangar == null) {
        _tharg... // control+space, enterどーん!
    }

 ↓↓↓

public void showMystic(String hangar) {
    if (hangar == null) {
        throw new IllegalArgumentException("The argument 'hangar' should not be null.");
    }

[argumentName]には引数の名前が自動的に入ります。違う引数が入った場合は調整しましょう。

DBFlute

代表的なものだけ

UTFluteのテストメソッドを補完 (_test)

_test (TEST)

e.g. UTFluteのテストメソッドを補完 @Java
_test... // control+space, enterどーん!

 ↓↓↓

public void test_[name]() {
    // ## Arrange ##
    [カーソル位置はここ]

    // ## Act ##

    // ## Assert ##
}

補完テンプレートの環境構築

DBFluteの補完テンプレートxml

DBFluteの補完テンプレートを入れましょう。 (ワークスペースの設定なので、workspaceディレクトリごとに設定作業する必要があります)

もし、LastaFluteプロジェクトであれば、プロジェクト直下もしくは[app]-baseプロジェクトの etc/tools/eclipse 配下に、java-editor-templates.xml が置いてありますのでそちらを使いましょう。詳しくはLastaFluteの方のページを。

そういった指定が特にない...もしくは「よくわからない」なら、以下からテンプレートファイルをダウンロードして、まるごと入れ替え方式で import しましょう。

whole-eclipse-editor-templates.zip
※最新のDBFlute補完テンプレートファイルです

まるごと入れ替え方式のやり方

importするテンプレートファイルに標準テンプレートも含まれてる場合は、まるごと入れ替え方式で取り込みます。 DBFluteの補完テンプレートは、基本的にこの方式を想定しています。

まず、メニューの Preferences の Java - Editor - Templates で設定画面を開きます。

Eclipse EditorTemplates Settings Example

既存のテンプレートを何か一つ選択して、(Macなら)command+A で全選択します(全選択できればやり方は何でもOK)。 そして、全選択した状態で Remove を押すと既存のテンプレートがすべて消えるので、その状態で Import... を押して、ファイル選択ダイアログでimport対象のxmlファイルを選択します。

Eclipse EditorTemplates Settings Import Whole

期待されているテンプレートが設定されたことを確認して Apply すれば完了です。試しに近くのクラスで補完をしてみましょう。