Skip to content

Commit 47c3ab7

Browse files
committed
Add the "doma.criteria.enabled" option.
If the option is enabled, annotation processors generate classes for criteria
1 parent 9e93416 commit 47c3ab7

File tree

8 files changed

+50
-5
lines changed

8 files changed

+50
-5
lines changed

doma-criteria/src/main/kotlin/org/seasar/doma/criteria/query/UpdateBuilder.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@ import org.seasar.doma.criteria.context.Criterion
44
import org.seasar.doma.criteria.context.Operand
55
import org.seasar.doma.criteria.context.UpdateContext
66
import org.seasar.doma.def.EntityDef
7-
import org.seasar.doma.def.PropertyDef
87
import org.seasar.doma.internal.jdbc.sql.PreparedSqlBuilder
9-
import org.seasar.doma.jdbc.InParameter
108
import org.seasar.doma.jdbc.PreparedSql
119
import org.seasar.doma.jdbc.SqlKind
1210
import org.seasar.doma.jdbc.SqlLogType

doma-criteria/src/main/kotlin/org/seasar/doma/criteria/statement/SqlUpdateStatement.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ package org.seasar.doma.criteria.statement
22

33
import org.seasar.doma.criteria.context.UpdateContext
44
import org.seasar.doma.criteria.declaration.UpdateDeclaration
5-
import org.seasar.doma.criteria.query.UpdateQuery
65
import org.seasar.doma.criteria.query.UpdateBuilder
6+
import org.seasar.doma.criteria.query.UpdateQuery
77
import org.seasar.doma.def.EntityDef
88
import org.seasar.doma.jdbc.Config
99
import org.seasar.doma.jdbc.SqlLogType

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ public final class Options {
2020

2121
public static final String TEST = "doma.test";
2222

23+
public static final String CRITERIA_ENABLED = "doma.criteria.enabled";
24+
2325
public static final String DEBUG = "doma.debug";
2426

2527
public static final String DAO_PACKAGE = "doma.dao.package";
@@ -72,6 +74,11 @@ public String getVersion() {
7274
return Artifact.getVersion();
7375
}
7476

77+
public boolean isCriteriaEnabled() {
78+
String enabled = getOption(CRITERIA_ENABLED);
79+
return Boolean.valueOf(enabled);
80+
}
81+
7582
public Date getDate() {
7683
if (isTestEnabled()) {
7784
return new Date(0L);

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

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import static org.seasar.doma.internal.util.AssertionUtil.assertNotNull;
44

5+
import java.util.Set;
6+
import javax.annotation.processing.RoundEnvironment;
57
import javax.annotation.processing.SupportedAnnotationTypes;
68
import javax.annotation.processing.SupportedOptions;
79
import javax.lang.model.element.TypeElement;
@@ -16,13 +18,27 @@
1618
import org.seasar.doma.internal.apt.meta.entity.EmbeddableMeta;
1719

1820
@SupportedAnnotationTypes({"org.seasar.doma.internal.EmbeddableDesc"})
19-
@SupportedOptions({Options.RESOURCES_DIR, Options.TEST, Options.DEBUG, Options.CONFIG_PATH})
21+
@SupportedOptions({
22+
Options.RESOURCES_DIR,
23+
Options.TEST,
24+
Options.DEBUG,
25+
Options.CONFIG_PATH,
26+
Options.CRITERIA_ENABLED
27+
})
2028
public class EmbeddableDescProcessor extends AbstractGeneratingProcessor<EmbeddableDescMeta> {
2129

2230
public EmbeddableDescProcessor() {
2331
super(EmbeddableDesc.class);
2432
}
2533

34+
@Override
35+
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
36+
if (!ctx.getOptions().isCriteriaEnabled()) {
37+
return true;
38+
}
39+
return super.process(annotations, roundEnv);
40+
}
41+
2642
@Override
2743
protected EmbeddableDescMetaFactory createTypeElementMetaFactory() {
2844
return new EmbeddableDescMetaFactory(ctx);

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

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import static org.seasar.doma.internal.util.AssertionUtil.assertNotNull;
44

5+
import java.util.Set;
6+
import javax.annotation.processing.RoundEnvironment;
57
import javax.annotation.processing.SupportedAnnotationTypes;
68
import javax.annotation.processing.SupportedOptions;
79
import javax.lang.model.element.TypeElement;
@@ -16,13 +18,27 @@
1618
import org.seasar.doma.internal.apt.meta.entity.EntityMeta;
1719

1820
@SupportedAnnotationTypes({"org.seasar.doma.internal.EntityDesc"})
19-
@SupportedOptions({Options.RESOURCES_DIR, Options.TEST, Options.DEBUG, Options.CONFIG_PATH})
21+
@SupportedOptions({
22+
Options.RESOURCES_DIR,
23+
Options.TEST,
24+
Options.DEBUG,
25+
Options.CONFIG_PATH,
26+
Options.CRITERIA_ENABLED
27+
})
2028
public class EntityDescProcessor extends AbstractGeneratingProcessor<EntityDescMeta> {
2129

2230
public EntityDescProcessor() {
2331
super(EntityDesc.class);
2432
}
2533

34+
@Override
35+
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
36+
if (!ctx.getOptions().isCriteriaEnabled()) {
37+
return true;
38+
}
39+
return super.process(annotations, roundEnv);
40+
}
41+
2642
@Override
2743
protected EntityDescMetaFactory createTypeElementMetaFactory() {
2844
return new EntityDescMetaFactory(ctx);

doma-processor/src/test/java/org/seasar/doma/internal/apt/processor/embeddabledesc/EmbeddableDescProcessorTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ class EmbeddableDescProcessorTest extends CompilerSupport {
2424
@BeforeEach
2525
void beforeEach() {
2626
addOption("-Adoma.test=true");
27+
addOption("-Adoma.criteria.enabled=true");
2728
}
2829

2930
@TestTemplate

doma-processor/src/test/java/org/seasar/doma/internal/apt/processor/entitydesc/EntityDescProcessorTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ class EntityDescProcessorTest extends CompilerSupport {
2424
@BeforeEach
2525
void beforeEach() {
2626
addOption("-Adoma.test=true");
27+
addOption("-Adoma.criteria.enabled=true");
2728
}
2829

2930
@TestTemplate

test-doma-criteria/build.gradle.kts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@ plugins {
33
kotlin("kapt") apply true
44
}
55

6+
kapt {
7+
arguments {
8+
arg("doma.criteria.enabled", true)
9+
}
10+
}
11+
612
dependencies {
713
kapt(project(":doma-processor"))
814
implementation(project(":doma-core"))

0 commit comments

Comments
 (0)