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のインスタンス変数を作った後に、今度はコンストラクタを自動生成する補完を使うと良いでしょう。 直接のショートカットではありませんが、できるだけ早く補完する方法があります。
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 で設定画面を開きます。
既存のテンプレートを何か一つ選択して、(Macなら)command+A で全選択します(全選択できればやり方は何でもOK)。 そして、全選択した状態で Remove を押すと既存のテンプレートがすべて消えるので、その状態で Import... を押して、ファイル選択ダイアログでimport対象のxmlファイルを選択します。
期待されているテンプレートが設定されたことを確認して Apply すれば完了です。試しに近くのクラスで補完をしてみましょう。