Skip to content

Commit b13e9b5

Browse files
committed
Refactor annotation processing
1 parent fcf6158 commit b13e9b5

File tree

10 files changed

+25
-39
lines changed

10 files changed

+25
-39
lines changed

doma-processor/src/main/java/org/seasar/doma/internal/apt/annot/BatchModifyAnnot.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,10 @@ public AnnotationValue getIgnoreGeneratedKeys() {
110110
return ignoreGeneratedKeys;
111111
}
112112

113-
public DuplicateKeyType getDuplicateKeyValue() {
113+
public DuplicateKeyType getDuplicateKeyTypeValue() {
114+
if (duplicateKeys == null) {
115+
return null;
116+
}
114117
VariableElement enumConstant = AnnotationValueUtil.toEnumConstant(duplicateKeyType);
115118
if (enumConstant == null) {
116119
throw new AptIllegalStateException(DUPLICATE_KEY_TYPE);

doma-processor/src/main/java/org/seasar/doma/internal/apt/annot/ModifyAnnot.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,10 @@ public AnnotationValue getSqlLog() {
118118
return sqlLog;
119119
}
120120

121-
public DuplicateKeyType getDuplicateKeyValue() {
121+
public DuplicateKeyType getDuplicateKeyTypeValue() {
122+
if (duplicateKeyType == null) {
123+
return null;
124+
}
122125
VariableElement enumConstant = AnnotationValueUtil.toEnumConstant(duplicateKeyType);
123126
if (enumConstant == null) {
124127
throw new AptIllegalStateException(DUPLICATE_KEY_TYPE);

doma-processor/src/main/java/org/seasar/doma/internal/apt/annot/MultiInsertAnnot.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,10 @@ public List<String> getExcludeValue() {
8686
return AnnotationValueUtil.toStringList(exclude);
8787
}
8888

89-
public DuplicateKeyType getDuplicateKeyValue() {
89+
public DuplicateKeyType getDuplicateKeyTypeValue() {
90+
if (duplicateKeys == null) {
91+
return null;
92+
}
9093
VariableElement enumConstant = AnnotationValueUtil.toEnumConstant(duplicateKeyType);
9194
if (enumConstant == null) {
9295
throw new AptIllegalStateException(DUPLICATE_KEY_TYPE);

doma-processor/src/main/java/org/seasar/doma/internal/apt/generator/DaoImplQueryMethodGenerator.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.seasar.doma.internal.apt.meta.query.*;
2121
import org.seasar.doma.internal.jdbc.command.*;
2222
import org.seasar.doma.internal.jdbc.sql.*;
23+
import org.seasar.doma.jdbc.query.DuplicateKeyType;
2324

2425
public class DaoImplQueryMethodGenerator extends AbstractGenerator
2526
implements QueryMetaVisitor<Void> {
@@ -200,10 +201,11 @@ public Void visitAutoModifyQueryMeta(AutoModifyQueryMeta m) {
200201
iprint("__query.setMethod(%1$s);%n", methodName);
201202
iprint("__query.setConfig(__support.getConfig());%n");
202203
iprint("__query.setEntity(%1$s);%n", m.getEntityParameterName());
203-
if (m.getDuplicateKeyType() != null) {
204+
DuplicateKeyType duplicateKeyType = m.getDuplicateKeyType();
205+
if (duplicateKeyType != null) {
204206
iprint(
205207
"__query.setDuplicateKeyType(org.seasar.doma.jdbc.query.DuplicateKeyType.%1$s);%n",
206-
m.getDuplicateKeyType());
208+
duplicateKeyType);
207209
}
208210
iprint("__query.setCallerClassName(\"%1$s\");%n", className);
209211
iprint("__query.setCallerMethodName(\"%1$s\");%n", m.getName());
@@ -369,10 +371,11 @@ public Void visitAutoMultiInsertQueryMeta(AutoMultiInsertQueryMeta m) {
369371
/* 5 */ methodName);
370372
iprint("__query.setMethod(%1$s);%n", methodName);
371373
iprint("__query.setConfig(__support.getConfig());%n");
372-
if (m.getDuplicateKeyType() != null) {
374+
DuplicateKeyType duplicateKeyType = m.getDuplicateKeyType();
375+
if (duplicateKeyType != null) {
373376
iprint(
374377
"__query.setDuplicateKeyType(org.seasar.doma.jdbc.query.DuplicateKeyType.%1$s);%n",
375-
m.getDuplicateKeyType());
378+
duplicateKeyType);
376379
}
377380
iprint("__query.setEntities(%1$s);%n", m.getEntityParameterName());
378381
iprint("__query.setCallerClassName(\"%1$s\");%n", className);
@@ -434,10 +437,11 @@ public Void visitAutoBatchModifyQueryMeta(AutoBatchModifyQueryMeta m) {
434437
iprint("__query.setMethod(%1$s);%n", methodName);
435438
iprint("__query.setConfig(__support.getConfig());%n");
436439
iprint("__query.setEntities(%1$s);%n", m.getEntitiesParameterName());
437-
if (m.getDuplicateKeyType() != null) {
440+
DuplicateKeyType duplicateKeyType = m.getDuplicateKeyType();
441+
if (duplicateKeyType != null) {
438442
iprint(
439443
"__query.setDuplicateKeyType(org.seasar.doma.jdbc.query.DuplicateKeyType.%1$s);%n",
440-
m.getDuplicateKeyType());
444+
duplicateKeyType);
441445
}
442446
iprint("__query.setCallerClassName(\"%1$s\");%n", className);
443447
iprint("__query.setCallerMethodName(\"%1$s\");%n", m.getName());

doma-processor/src/main/java/org/seasar/doma/internal/apt/meta/query/AutoBatchModifyQueryMeta.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ public class AutoBatchModifyQueryMeta extends AbstractQueryMeta {
1616

1717
private BatchModifyAnnot batchModifyAnnot;
1818

19-
private DuplicateKeyType duplicateKeyType;
20-
2119
public AutoBatchModifyQueryMeta(TypeElement daoElement, ExecutableElement methodElement) {
2220
super(daoElement, methodElement);
2321
}
@@ -83,11 +81,7 @@ public Boolean getIgnoreGeneratedKeysValues() {
8381
}
8482

8583
public DuplicateKeyType getDuplicateKeyType() {
86-
return this.duplicateKeyType;
87-
}
88-
89-
public void setDuplicateKeyType(DuplicateKeyType duplicateKeyType) {
90-
this.duplicateKeyType = duplicateKeyType;
84+
return batchModifyAnnot.getDuplicateKeyTypeValue();
9185
}
9286

9387
@Override

doma-processor/src/main/java/org/seasar/doma/internal/apt/meta/query/AutoBatchModifyQueryMetaFactory.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import org.seasar.doma.internal.apt.cttype.EntityCtType;
1313
import org.seasar.doma.internal.apt.cttype.IterableCtType;
1414
import org.seasar.doma.internal.apt.cttype.SimpleCtTypeVisitor;
15-
import org.seasar.doma.jdbc.query.DuplicateKeyType;
1615
import org.seasar.doma.message.Message;
1716

1817
public class AutoBatchModifyQueryMetaFactory
@@ -44,10 +43,8 @@ private AutoBatchModifyQueryMeta createAutoBatchModifyQueryMeta() {
4443
AutoBatchModifyQueryMeta queryMeta = new AutoBatchModifyQueryMeta(daoElement, methodElement);
4544
BatchModifyAnnot batchModifyAnnot = ctx.getAnnotations().newBatchInsertAnnot(methodElement);
4645
if (batchModifyAnnot != null && !batchModifyAnnot.getSqlFileValue()) {
47-
DuplicateKeyType duplicateKeyType = batchModifyAnnot.getDuplicateKeyValue();
4846
queryMeta.setBatchModifyAnnot(batchModifyAnnot);
4947
queryMeta.setQueryKind(QueryKind.AUTO_BATCH_INSERT);
50-
queryMeta.setDuplicateKeyType(duplicateKeyType);
5148
return queryMeta;
5249
}
5350
batchModifyAnnot = ctx.getAnnotations().newBatchUpdateAnnot(methodElement);

doma-processor/src/main/java/org/seasar/doma/internal/apt/meta/query/AutoModifyQueryMeta.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ public class AutoModifyQueryMeta extends AbstractQueryMeta {
1616

1717
private ModifyAnnot modifyAnnot;
1818

19-
private DuplicateKeyType duplicateKeyType;
20-
2119
public AutoModifyQueryMeta(TypeElement daoElement, ExecutableElement methodElement) {
2220
super(daoElement, methodElement);
2321
}
@@ -87,11 +85,7 @@ public SqlLogType getSqlLogType() {
8785
}
8886

8987
public DuplicateKeyType getDuplicateKeyType() {
90-
return this.duplicateKeyType;
91-
}
92-
93-
public void setDuplicateKeyType(DuplicateKeyType duplicateKeyType) {
94-
this.duplicateKeyType = duplicateKeyType;
88+
return modifyAnnot.getDuplicateKeyTypeValue();
9589
}
9690

9791
@Override

doma-processor/src/main/java/org/seasar/doma/internal/apt/meta/query/AutoModifyQueryMetaFactory.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import org.seasar.doma.internal.apt.cttype.CtType;
1212
import org.seasar.doma.internal.apt.cttype.EntityCtType;
1313
import org.seasar.doma.internal.apt.cttype.SimpleCtTypeVisitor;
14-
import org.seasar.doma.jdbc.query.DuplicateKeyType;
1514
import org.seasar.doma.message.Message;
1615

1716
public class AutoModifyQueryMetaFactory extends AbstractQueryMetaFactory<AutoModifyQueryMeta> {
@@ -42,10 +41,8 @@ private AutoModifyQueryMeta createAutoModifyQueryMeta() {
4241
AutoModifyQueryMeta queryMeta = new AutoModifyQueryMeta(daoElement, methodElement);
4342
ModifyAnnot modifyAnnot = ctx.getAnnotations().newInsertAnnot(methodElement);
4443
if (modifyAnnot != null && !modifyAnnot.getSqlFileValue()) {
45-
DuplicateKeyType duplicateKeyType = modifyAnnot.getDuplicateKeyValue();
4644
queryMeta.setModifyAnnot(modifyAnnot);
4745
queryMeta.setQueryKind(QueryKind.AUTO_INSERT);
48-
queryMeta.setDuplicateKeyType(duplicateKeyType);
4946
return queryMeta;
5047
}
5148
modifyAnnot = ctx.getAnnotations().newUpdateAnnot(methodElement);

doma-processor/src/main/java/org/seasar/doma/internal/apt/meta/query/AutoMultiInsertQueryMeta.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ public class AutoMultiInsertQueryMeta extends AbstractQueryMeta {
1616

1717
private MultiInsertAnnot multiInsertAnnot;
1818

19-
private DuplicateKeyType duplicateKeyType;
20-
2119
public AutoMultiInsertQueryMeta(TypeElement daoElement, ExecutableElement methodElement) {
2220
super(daoElement, methodElement);
2321
}
@@ -67,11 +65,7 @@ public SqlLogType getSqlLogType() {
6765
}
6866

6967
public DuplicateKeyType getDuplicateKeyType() {
70-
return this.duplicateKeyType;
71-
}
72-
73-
public void setDuplicateKeyType(DuplicateKeyType duplicateKeyType) {
74-
this.duplicateKeyType = duplicateKeyType;
68+
return multiInsertAnnot.getDuplicateKeyTypeValue();
7569
}
7670

7771
@Override

doma-processor/src/main/java/org/seasar/doma/internal/apt/meta/query/AutoMultiInsertQueryMetaFactory.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import org.seasar.doma.internal.apt.cttype.EntityCtType;
1212
import org.seasar.doma.internal.apt.cttype.IterableCtType;
1313
import org.seasar.doma.internal.apt.cttype.SimpleCtTypeVisitor;
14-
import org.seasar.doma.jdbc.query.DuplicateKeyType;
1514
import org.seasar.doma.message.Message;
1615

1716
public class AutoMultiInsertQueryMetaFactory
@@ -39,10 +38,8 @@ private AutoMultiInsertQueryMeta createAutoMultiInsertQueryMeta() {
3938
AutoMultiInsertQueryMeta queryMeta = new AutoMultiInsertQueryMeta(daoElement, methodElement);
4039
MultiInsertAnnot insertAnnot = ctx.getAnnotations().newMultiInsertAnnot(methodElement);
4140
if (insertAnnot != null) {
42-
DuplicateKeyType duplicateKeyType = insertAnnot.getDuplicateKeyValue();
4341
queryMeta.setMultiInsertAnnot(insertAnnot);
4442
queryMeta.setQueryKind(QueryKind.AUTO_MULTI_INSERT);
45-
queryMeta.setDuplicateKeyType(duplicateKeyType);
4643
return queryMeta;
4744
}
4845
return null;

0 commit comments

Comments
 (0)