Skip to content

Commit 8fa389e

Browse files
committed
型パラメータを削除し型キャストで対応
convertMethodResultToAdapterModelの存在意義がキャストだけになっていたのでやめてみる
1 parent 1749f71 commit 8fa389e

7 files changed

Lines changed: 22 additions & 34 deletions

File tree

jig-core/src/main/java/org/dddjava/jig/adapter/Adapter.java

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,8 @@
88
/**
99
* Adapterのインタフェース。
1010
* このインタフェースを実装したクラスの {@link HandleDocument} メソッドを呼び出してwriterに引き渡す。
11-
*
12-
* @param <T> writerが処理する型。通常はメソッドの戻り値もこの型になります。
1311
*/
14-
public interface Adapter<T> {
12+
public interface Adapter {
1513

16-
/**
17-
* Adapterの処理結果を書き出せる形に変換します。
18-
* Adapterで実装されているハンドラメソッドの結果がすべてwriterが扱えるなら実装不要。
19-
*/
20-
@SuppressWarnings("unchecked")
21-
default T convertMethodResultToAdapterModel(Object resultModel) {
22-
return (T) resultModel;
23-
}
24-
25-
List<Path> write(T result, JigDocument jigDocument);
14+
List<Path> write(Object result, JigDocument jigDocument);
2615
}

jig-core/src/main/java/org/dddjava/jig/adapter/CompositeAdapter.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111

1212
public class CompositeAdapter {
1313

14-
EnumMap<JigDocument, Adapter<?>> adapterInstanceMap = new EnumMap<>(JigDocument.class);
14+
EnumMap<JigDocument, Adapter> adapterInstanceMap = new EnumMap<>(JigDocument.class);
1515
EnumMap<JigDocument, MethodHandle> adapterMethodMap = new EnumMap<>(JigDocument.class);
1616

17-
public void register(Adapter<?> adapter) {
17+
public void register(Adapter adapter) {
1818
try {
1919
var lookup = MethodHandles.lookup();
2020
for (var method : adapter.getClass().getMethods()) {
@@ -32,15 +32,13 @@ public void register(Adapter<?> adapter) {
3232
}
3333
}
3434

35-
@SuppressWarnings("unchecked")
36-
public <T> List<Path> invoke(JigDocument jigDocument, JigRepository jigRepository) {
37-
Adapter<T> adapter = (Adapter<T>) adapterInstanceMap.get(jigDocument);
35+
public List<Path> invoke(JigDocument jigDocument, JigRepository jigRepository) {
36+
Adapter adapter = adapterInstanceMap.get(jigDocument);
3837
MethodHandle adapterMethod = adapterMethodMap.get(jigDocument);
3938

4039
try {
4140
Object result = adapterMethod.invoke(adapter, jigRepository);
42-
T model = adapter.convertMethodResultToAdapterModel(result);
43-
return adapter.write(model, jigDocument);
41+
return adapter.write(result, jigDocument);
4442
} catch (Throwable e) {
4543
throw new RuntimeException(e);
4644
}

jig-core/src/main/java/org/dddjava/jig/adapter/graphviz/DiagramAdapter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
* {@link HandleDocument} で指定されたドキュメントを出力する際に各メソッドが実行される。
2020
*/
2121
@HandleDocument
22-
public class DiagramAdapter implements Adapter<DiagramSourceWriter> {
22+
public class DiagramAdapter implements Adapter {
2323

2424
private final JigService jigService;
2525
private final GraphvizDiagramWriter graphvizDiagramWriter;
@@ -57,7 +57,7 @@ public DiagramSourceWriter serviceMethodCallHierarchy(JigRepository jigRepositor
5757
}
5858

5959
@Override
60-
public List<Path> write(DiagramSourceWriter result, JigDocument jigDocument) {
61-
return graphvizDiagramWriter.write(result, jigDocument);
60+
public List<Path> write(Object result, JigDocument jigDocument) {
61+
return graphvizDiagramWriter.write((DiagramSourceWriter) result, jigDocument);
6262
}
6363
}

jig-core/src/main/java/org/dddjava/jig/adapter/poi/ListAdapter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
import static java.util.stream.Collectors.joining;
3636

3737
@HandleDocument
38-
public class ListAdapter implements Adapter<ReportBook> {
38+
public class ListAdapter implements Adapter {
3939

4040
/**
4141
* 一覧出力で複数要素を文字列連結する際のコレクター
@@ -228,7 +228,7 @@ private static String markIfTrue(boolean b) {
228228
}
229229

230230
@Override
231-
public List<Path> write(ReportBook result, JigDocument jigDocument) {
232-
return result.writeXlsx(jigDocument, jigDocumentContext.outputDirectory());
231+
public List<Path> write(Object result, JigDocument jigDocument) {
232+
return ((ReportBook) result).writeXlsx(jigDocument, jigDocumentContext.outputDirectory());
233233
}
234234
}

jig-core/src/main/java/org/dddjava/jig/adapter/thymeleaf/InsightAdapter.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919

2020
@HandleDocument
21-
public class InsightAdapter implements Adapter<Insights> {
21+
public class InsightAdapter implements Adapter {
2222

2323
private final JigService jigService;
2424
private final TemplateEngine templateEngine;
@@ -36,7 +36,8 @@ public Insights invoke(JigRepository repository) {
3636
}
3737

3838
@Override
39-
public List<Path> write(Insights result, JigDocument jigDocument) {
39+
public List<Path> write(Object object, JigDocument jigDocument) {
40+
Insights result = (Insights) object;
4041
var jigDocumentWriter = new JigDocumentWriter(jigDocument, jigDocumentContext.outputDirectory());
4142

4243
Map<String, Object> contextMap = Map.of(
@@ -50,7 +51,7 @@ public List<Path> write(Insights result, JigDocument jigDocument) {
5051
String template = jigDocumentWriter.jigDocument().fileName();
5152

5253
jigDocumentWriter.writeTextAs(".html",
53-
writer -> templateEngine.process(template, context, writer));
54+
writer -> templateEngine.process(template, context, writer));
5455
return jigDocumentWriter.outputFilePaths();
5556
}
5657
}

jig-core/src/main/java/org/dddjava/jig/adapter/thymeleaf/RepositoryListAdapter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import java.util.Locale;
1717
import java.util.Map;
1818

19-
public class RepositoryListAdapter implements Adapter<List<RepositoryListAdapter.OutputSummaryItem>> {
19+
public class RepositoryListAdapter implements Adapter {
2020
private final JigService jigService;
2121
private final TemplateEngine templateEngine;
2222
private final JigDocumentContext jigDocumentContext;
@@ -49,7 +49,7 @@ public List<OutputSummaryItem> invoke(JigRepository repository) {
4949
}
5050

5151
@Override
52-
public List<Path> write(List<RepositoryListAdapter.OutputSummaryItem> result, JigDocument jigDocument) {
52+
public List<Path> write(Object result, JigDocument jigDocument) {
5353
var jigDocumentWriter = new JigDocumentWriter(jigDocument, jigDocumentContext.outputDirectory());
5454

5555
Map<String, Object> contextMap = Map.of(

jig-core/src/main/java/org/dddjava/jig/adapter/thymeleaf/SummaryAdapter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import java.util.Map;
1818

1919
@HandleDocument
20-
public class SummaryAdapter implements Adapter<SummaryModel> {
20+
public class SummaryAdapter implements Adapter {
2121

2222
private final JigService jigService;
2323
private final ThymeleafSummaryWriter thymeleafSummaryWriter;
@@ -62,7 +62,7 @@ public SummaryModel inputSummary(JigRepository jigRepository) {
6262
}
6363

6464
@Override
65-
public List<Path> write(SummaryModel result, JigDocument jigDocument) {
66-
return thymeleafSummaryWriter.write(jigDocument, result);
65+
public List<Path> write(Object result, JigDocument jigDocument) {
66+
return thymeleafSummaryWriter.write(jigDocument, (SummaryModel) result);
6767
}
6868
}

0 commit comments

Comments
 (0)