Skip to content

Commit 5171b5f

Browse files
committed
Translate lombok-support.rst
1 parent 96bdbc8 commit 5171b5f

File tree

1 file changed

+38
-52
lines changed

1 file changed

+38
-52
lines changed

docs/lombok-support.rst

Lines changed: 38 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,43 @@
1-
==================
2-
Lombok サポート
3-
==================
1+
==============
2+
Lombok support
3+
==============
44

5-
.. contents:: 目次
5+
.. contents::
66
:depth: 3
77

8-
Doma `Lombok <https://projectlombok.org/>`_ のバージョン 1.16.12 以上をサポートしています。
8+
Doma supports `Lombok <https://projectlombok.org/>`_ 1.16.12 or above.
99

1010
.. note::
1111

12-
IDE として Eclipse を利用する場合はバージョン 4.5 以上を使ってください。
13-
4.5 未満ではアノテーションプロッサで取得されるクラスに定義されたフィールドなどの並びがソースコードに記載されている順序と異なり、
14-
正しく動作しないためです。
12+
If you intend to use Eclipse, use version 4.5 or above.
1513

16-
Lombok サポートの概要
17-
================================
14+
Overview
15+
========
1816

19-
Lombok と Doma は共に JSR 269 で規定されたアノテーションプロセッサを提供していますが、
20-
Lombok と Doma を同時に利用する場合はアノテーションプロセッサの処理順序が問題になることがあります。
21-
例えば、 Lombok のアノテーションプロセッサがコンストラクタを生成し、
22-
Doma のアノテーションプロセッサがそのコンストラクタを読み取る場合などです。
23-
仮に、Doma のアノテーションプロセッサが先に実行されると単にコンストラクタが定義されていないものとして動作し、
24-
コンパイルに失敗します。
17+
Both Lombok and Doma provide their own annotation processors.
18+
Because the execution order of annotation processors is not determined in Java,
19+
the Doma's annotation processors are not always aware of the class modifications made by
20+
the Lombok annotation processors.
2521

26-
アノテーションプロセッサの処理順序を指定できればこの問題は解決するのですが、
27-
残念ながら処理順序が保証されないことが仕様に記載されており、実際に問題解決の仕組みは提供されていません。
22+
To resolve the issue, the Doma's annotation processors recognise several Lombok's annotations
23+
and change their own behavior.
24+
For example, if the Doma's annotation processors find a class annotated with ``@lombok.Value``,
25+
they supposes that the class has a constructor whose arguments covers all instance fields.
2826

29-
Doma では、この問題に対応するために、Lombok のアノテーションの有無を認識して処理順序に依存にしない振る舞いをするようにしています。
30-
先ほどの例で言えば、 ``@lombok.Value`` などコンストラクタを生成するLombokのアノテーションが存在する場合は
31-
実際にはコンストラクタを読み取らなくてもコンストラクタが存在するものとして動作するということです。
27+
Best practices
28+
==============
3229

33-
Lombok 利用のベストプラクティス
34-
================================
30+
We show you recommended ways to define classes with Lombok annotations.
3531

36-
Lombok のアノテーションを用いたクラスの定義について推奨する方法を記載します。
32+
Entity class definition
33+
-----------------------
3734

38-
エンティティクラス
39-
-------------------
35+
immutable entity classes
36+
~~~~~~~~~~~~~~~~~~~~~~~~
4037

41-
immutable(イミュータブル)
42-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
43-
44-
イミュータブルなエンティティクラスを定義する場合は下記の点に注意します。
45-
46-
* ``@Entity`` の ``immutable`` 要素に ``true`` を設定する
47-
* ``@lombok.Value`` もしくは ``@lombok.AllArgsConstructor`` を注釈する
48-
* ``@lombok.AllArgsConstructor`` を選んだ場合、getterを生成するためには ``@lombok.Getter`` を注釈する
38+
* Specify ``true`` to the ``immutable`` element of ``@Entity``
39+
* Specify either ``@lombok.Value`` or ``@lombok.AllArgsConstructor``
40+
* Specify ``@lombok.Getter`` to generate getters, in case of ``@lombok.AllArgsConstructor``
4941

5042
.. code-block:: java
5143
@@ -70,13 +62,11 @@ immutable(イミュータブル)
7062
private final Age age;
7163
}
7264
73-
mutable(ミュータブル)
74-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
75-
76-
ミュータブルなエンティティクラスを定義する場合は下記の点に注意します。
65+
mutable entity classes
66+
~~~~~~~~~~~~~~~~~~~~~~
7767

78-
* デフォルトコンストラクタを定義する(デフォルトコンストラクタの生成を抑制しない)
79-
* getter/setterを生成する場合は ``@lombok.Data`` もしくは ``@lombok.Getter`` / ``@lombok.Setter`` を注釈する
68+
* Define a default constructor
69+
* Specify ``@lombok.Data`` or ``@lombok.Getter``/``@lombok.Setter`` to generate getters/setters
8070

8171
.. code-block:: java
8272
@@ -101,13 +91,11 @@ mutable(ミュータブル)
10191
private Age age;
10292
}
10393
104-
ドメインクラス
105-
-------------------
94+
Domain class definition
95+
-----------------------
10696

107-
ドメインクラスを定義する場合は下記の点に注意します。
108-
109-
* ``@lombok.Value`` を注釈する
110-
* インスタンスフィールドは1つだけ定義し名前は ``value`` にする
97+
* Specify ``@lombok.Value``
98+
* Define only one instance field whose name is ``value``
11199

112100
.. code-block:: java
113101
@@ -117,13 +105,11 @@ mutable(ミュータブル)
117105
Integer value;
118106
}
119107
120-
エンベッダブルクラス
121-
----------------------
122-
123-
エンベッダブルクラスを定義する場合は下記の点に注意します。
108+
Embeddable class definition
109+
---------------------------
124110

125-
* ``@lombok.Value`` もしくは ``@lombok.AllArgsConstructor`` を注釈する
126-
* ``@lombok.AllArgsConstructor`` を選んだ場合、getterを生成するためには ``@lombok.Getter`` を注釈する
111+
* Specify either ``@lombok.Value`` or ``@lombok.AllArgsConstructor``
112+
* Specify ``@lombok.Getter`` to generate getters, in case of ``@lombok.AllArgsConstructor``
127113

128114
.. code-block:: java
129115

0 commit comments

Comments
 (0)