Skip to content

Commit 7d66d2f

Browse files
committed
注釈処理のプロセッサが処理するアノテーションを明示的にチェック
kaptが `@SupportedAnnotationTypes` に指定されたアノテーションを無視して無関係のプロセッサを実行することへの対応である。
1 parent 6a0be98 commit 7d66d2f

File tree

8 files changed

+42
-6
lines changed

8 files changed

+42
-6
lines changed

src/main/java/org/seasar/doma/internal/apt/AbstractGeneratingProcessor.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package org.seasar.doma.internal.apt;
1717

1818
import java.io.IOException;
19+
import java.lang.annotation.Annotation;
1920
import java.util.Set;
2021

2122
import javax.annotation.processing.RoundEnvironment;
@@ -34,7 +35,9 @@
3435
public abstract class AbstractGeneratingProcessor<M extends TypeElementMeta>
3536
extends AbstractProcessor {
3637

37-
protected AbstractGeneratingProcessor() {
38+
protected AbstractGeneratingProcessor(
39+
Class<? extends Annotation> supportedAnnotationType) {
40+
super(supportedAnnotationType);
3841
}
3942

4043
@Override

src/main/java/org/seasar/doma/internal/apt/AbstractProcessor.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package org.seasar.doma.internal.apt;
1717

18+
import java.lang.annotation.Annotation;
1819
import java.util.function.Consumer;
1920

2021
import javax.lang.model.SourceVersion;
@@ -30,7 +31,11 @@
3031
public abstract class AbstractProcessor extends
3132
javax.annotation.processing.AbstractProcessor {
3233

33-
protected AbstractProcessor() {
34+
protected Class<? extends Annotation> supportedAnnotationType;
35+
36+
protected AbstractProcessor(
37+
Class<? extends Annotation> supportedAnnotationType) {
38+
this.supportedAnnotationType = supportedAnnotationType;
3439
}
3540

3641
@Override
@@ -40,6 +45,11 @@ public SourceVersion getSupportedSourceVersion() {
4045

4146
protected void handleTypeElement(TypeElement typeElement,
4247
Consumer<TypeElement> handler) {
48+
Annotation annotation = typeElement
49+
.getAnnotation(supportedAnnotationType);
50+
if (annotation == null) {
51+
return;
52+
}
4353
if (Options.isDebugEnabled(processingEnv)) {
4454
Notifier.debug(processingEnv, Message.DOMA4090, getClass()
4555
.getName(), typeElement.getQualifiedName());
@@ -66,5 +76,4 @@ protected void handleTypeElement(TypeElement typeElement,
6676
.getName(), typeElement.getQualifiedName());
6777
}
6878
}
69-
7079
}

src/main/java/org/seasar/doma/internal/apt/DaoProcessor.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import javax.annotation.processing.SupportedOptions;
2626
import javax.lang.model.element.TypeElement;
2727

28+
import org.seasar.doma.Dao;
2829
import org.seasar.doma.internal.apt.meta.ArrayCreateQueryMetaFactory;
2930
import org.seasar.doma.internal.apt.meta.AutoBatchModifyQueryMetaFactory;
3031
import org.seasar.doma.internal.apt.meta.AutoFunctionQueryMetaFactory;
@@ -54,6 +55,10 @@
5455
Options.SQL_VALIDATION, Options.VERSION_VALIDATION })
5556
public class DaoProcessor extends AbstractGeneratingProcessor<DaoMeta> {
5657

58+
public DaoProcessor() {
59+
super(Dao.class);
60+
}
61+
5762
@Override
5863
protected TypeElementMetaFactory<DaoMeta> createTypeElementMetaFactory() {
5964
List<QueryMetaFactory> queryMetaFactories = createQueryMetaFactory();

src/main/java/org/seasar/doma/internal/apt/DomainConvertersProcessor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import javax.lang.model.type.TypeMirror;
2525
import javax.lang.model.util.ElementFilter;
2626

27+
import org.seasar.doma.DomainConverters;
2728
import org.seasar.doma.ExternalDomain;
2829
import org.seasar.doma.internal.apt.mirror.DomainConvertersMirror;
2930
import org.seasar.doma.internal.apt.util.TypeMirrorUtil;
@@ -38,6 +39,7 @@
3839
public class DomainConvertersProcessor extends AbstractProcessor {
3940

4041
public DomainConvertersProcessor() {
42+
super(DomainConverters.class);
4143
}
4244

4345
@Override

src/main/java/org/seasar/doma/internal/apt/DomainProcessor.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,15 @@
1515
*/
1616
package org.seasar.doma.internal.apt;
1717

18-
import static org.seasar.doma.internal.util.AssertionUtil.*;
18+
import static org.seasar.doma.internal.util.AssertionUtil.assertNotNull;
1919

2020
import java.io.IOException;
2121

2222
import javax.annotation.processing.SupportedAnnotationTypes;
2323
import javax.annotation.processing.SupportedOptions;
2424
import javax.lang.model.element.TypeElement;
2525

26+
import org.seasar.doma.Domain;
2627
import org.seasar.doma.internal.apt.meta.DomainMeta;
2728
import org.seasar.doma.internal.apt.meta.DomainMetaFactory;
2829

@@ -34,6 +35,10 @@
3435
@SupportedOptions({ Options.VERSION_VALIDATION, Options.TEST, Options.DEBUG })
3536
public class DomainProcessor extends AbstractGeneratingProcessor<DomainMeta> {
3637

38+
public DomainProcessor() {
39+
super(Domain.class);
40+
}
41+
3742
@Override
3843
protected DomainMetaFactory createTypeElementMetaFactory() {
3944
return new DomainMetaFactory(processingEnv);

src/main/java/org/seasar/doma/internal/apt/EntityProcessor.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,15 @@
1515
*/
1616
package org.seasar.doma.internal.apt;
1717

18-
import static org.seasar.doma.internal.util.AssertionUtil.*;
18+
import static org.seasar.doma.internal.util.AssertionUtil.assertNotNull;
1919

2020
import java.io.IOException;
2121

2222
import javax.annotation.processing.SupportedAnnotationTypes;
2323
import javax.annotation.processing.SupportedOptions;
2424
import javax.lang.model.element.TypeElement;
2525

26+
import org.seasar.doma.Entity;
2627
import org.seasar.doma.internal.apt.meta.EntityMeta;
2728
import org.seasar.doma.internal.apt.meta.EntityMetaFactory;
2829
import org.seasar.doma.internal.apt.meta.EntityPropertyMetaFactory;
@@ -36,6 +37,10 @@
3637
Options.VERSION_VALIDATION, Options.TEST, Options.DEBUG })
3738
public class EntityProcessor extends AbstractGeneratingProcessor<EntityMeta> {
3839

40+
public EntityProcessor() {
41+
super(Entity.class);
42+
}
43+
3944
@Override
4045
protected EntityMetaFactory createTypeElementMetaFactory() {
4146
EntityPropertyMetaFactory propertyMetaFactory = createEntityPropertyMetaFactory();

src/main/java/org/seasar/doma/internal/apt/ExternalDomainProcessor.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,15 @@
1515
*/
1616
package org.seasar.doma.internal.apt;
1717

18-
import static org.seasar.doma.internal.util.AssertionUtil.*;
18+
import static org.seasar.doma.internal.util.AssertionUtil.assertNotNull;
1919

2020
import java.io.IOException;
2121

2222
import javax.annotation.processing.SupportedAnnotationTypes;
2323
import javax.annotation.processing.SupportedOptions;
2424
import javax.lang.model.element.TypeElement;
2525

26+
import org.seasar.doma.ExternalDomain;
2627
import org.seasar.doma.internal.apt.meta.ExternalDomainMeta;
2728
import org.seasar.doma.internal.apt.meta.ExternalDomainMetaFactory;
2829

@@ -35,6 +36,10 @@
3536
public class ExternalDomainProcessor extends
3637
AbstractGeneratingProcessor<ExternalDomainMeta> {
3738

39+
public ExternalDomainProcessor() {
40+
super(ExternalDomain.class);
41+
}
42+
3843
@Override
3944
protected ExternalDomainMetaFactory createTypeElementMetaFactory() {
4045
return new ExternalDomainMetaFactory(processingEnv);

src/main/java/org/seasar/doma/internal/apt/SingletonConfigProcessor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import javax.lang.model.element.TypeElement;
2828
import javax.lang.model.util.ElementFilter;
2929

30+
import org.seasar.doma.SingletonConfig;
3031
import org.seasar.doma.internal.apt.mirror.SingletonConfigMirror;
3132
import org.seasar.doma.internal.apt.util.TypeMirrorUtil;
3233
import org.seasar.doma.jdbc.Config;
@@ -41,6 +42,7 @@
4142
public class SingletonConfigProcessor extends AbstractProcessor {
4243

4344
public SingletonConfigProcessor() {
45+
super(SingletonConfig.class);
4446
}
4547

4648
@Override

0 commit comments

Comments
 (0)