Skip to content

Commit 0d92b92

Browse files
committed
Merge pull request #133 from domaframework/experimental-support-kapt-1.0.1-2
kapt 1.0.1-2の実験的なサポート
2 parents 2d3b81a + ac95241 commit 0d92b92

File tree

10 files changed

+56
-8
lines changed

10 files changed

+56
-8
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

src/main/java/org/seasar/doma/internal/apt/meta/EntityMeta.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import javax.lang.model.element.VariableElement;
2929
import javax.lang.model.type.TypeMirror;
3030

31+
import org.seasar.doma.ParameterName;
3132
import org.seasar.doma.internal.apt.mirror.EntityMirror;
3233
import org.seasar.doma.internal.apt.mirror.TableMirror;
3334
import org.seasar.doma.jdbc.entity.NamingType;
@@ -141,8 +142,13 @@ public List<EntityPropertyMeta> getAllPropertyMetasInCtorArgsOrder() {
141142
}
142143
List<EntityPropertyMeta> results = new ArrayList<EntityPropertyMeta>();
143144
for (VariableElement param : constructor.getParameters()) {
144-
results.add(allPropertyMetaMap
145-
.get(param.getSimpleName().toString()));
145+
String name = param.getSimpleName().toString();
146+
ParameterName parameterName = param
147+
.getAnnotation(ParameterName.class);
148+
if (parameterName != null) {
149+
name = parameterName.value();
150+
}
151+
results.add(allPropertyMetaMap.get(name));
146152
}
147153
return results;
148154
}

src/main/java/org/seasar/doma/internal/apt/meta/EntityMetaFactory.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import org.seasar.doma.Entity;
4444
import org.seasar.doma.EntityField;
4545
import org.seasar.doma.OriginalStates;
46+
import org.seasar.doma.ParameterName;
4647
import org.seasar.doma.Transient;
4748
import org.seasar.doma.internal.apt.AptException;
4849
import org.seasar.doma.internal.apt.AptIllegalStateException;
@@ -591,6 +592,11 @@ protected ExecutableElement getSuitableConstructor(
591592
int validCount = 0;
592593
for (VariableElement param : constructor.getParameters()) {
593594
String name = param.getSimpleName().toString();
595+
ParameterName parameterName = param
596+
.getAnnotation(ParameterName.class);
597+
if (parameterName != null) {
598+
name = parameterName.value();
599+
}
594600
TypeMirror paramType = param.asType();
595601
TypeMirror propertyType = types.get(name);
596602
if (propertyType == null) {

0 commit comments

Comments
 (0)