Skip to content

Commit ba65ff9

Browse files
committed
Change the sigunature of the PropertyDef class to accept a generic class
1 parent 50cea17 commit ba65ff9

File tree

9 files changed

+39
-63
lines changed

9 files changed

+39
-63
lines changed

doma-core/src/main/java/org/seasar/doma/jdbc/criteria/declaration/AggregateFunction.java

Lines changed: 7 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,11 @@ public String getName() {
3636
return name;
3737
}
3838

39+
@Override
40+
public Class<?> asClass() {
41+
return argument.asClass();
42+
}
43+
3944
@Override
4045
public EntityPropertyType<?, ?> asType() {
4146
return argument.asType();
@@ -62,16 +67,8 @@ public int hashCode() {
6267

6368
class Avg<PROPERTY> extends AbstractFunction<PROPERTY> {
6469

65-
private final PropertyDef<PROPERTY> argument;
66-
6770
public Avg(PropertyDef<PROPERTY> argument) {
6871
super("avg", argument);
69-
this.argument = argument;
70-
}
71-
72-
@Override
73-
public Class<PROPERTY> asClass() {
74-
return argument.asClass();
7572
}
7673
}
7774

@@ -83,7 +80,7 @@ public Count(PropertyDef<?> argument) {
8380
}
8481

8582
@Override
86-
public Class<Long> asClass() {
83+
public Class<?> asClass() {
8784
return Long.class;
8885
}
8986

@@ -94,44 +91,22 @@ public EntityPropertyType<?, Long> asType() {
9491
}
9592

9693
class Max<PROPERTY> extends AbstractFunction<PROPERTY> {
97-
private final PropertyDef<PROPERTY> argument;
9894

9995
public Max(PropertyDef<PROPERTY> argument) {
10096
super("max", argument);
101-
this.argument = argument;
102-
}
103-
104-
@Override
105-
public Class<PROPERTY> asClass() {
106-
return argument.asClass();
10797
}
10898
}
10999

110100
class Min<PROPERTY> extends AbstractFunction<PROPERTY> {
111-
private final PropertyDef<PROPERTY> argument;
112101

113102
public Min(PropertyDef<PROPERTY> argument) {
114103
super("min", argument);
115-
this.argument = argument;
116-
}
117-
118-
@Override
119-
public Class<PROPERTY> asClass() {
120-
return argument.asClass();
121104
}
122105
}
123106

124107
class Sum<PROPERTY> extends AbstractFunction<PROPERTY> {
125-
private final PropertyDef<PROPERTY> argument;
126-
127108
public Sum(PropertyDef<PROPERTY> argument) {
128109
super("sum", argument);
129-
this.argument = argument;
130-
}
131-
132-
@Override
133-
public Class<PROPERTY> asClass() {
134-
return argument.asClass();
135110
}
136111
}
137112

@@ -146,7 +121,7 @@ public String getName() {
146121
}
147122

148123
@Override
149-
public Class<Long> asClass() {
124+
public Class<?> asClass() {
150125
return Long.class;
151126
}
152127

doma-core/src/main/java/org/seasar/doma/jdbc/criteria/def/DefaultPropertyDef.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,18 @@
55

66
public class DefaultPropertyDef<PROPERTY> implements PropertyDef<PROPERTY> {
77

8-
private final Class<PROPERTY> clazz;
8+
private final Class<?> clazz;
99
private final EntityType<?> entityType;
1010
private final String name;
1111

12-
public DefaultPropertyDef(Class<PROPERTY> clazz, EntityType<?> entityType, String name) {
12+
public DefaultPropertyDef(Class<?> clazz, EntityType<?> entityType, String name) {
1313
this.clazz = clazz;
1414
this.entityType = entityType;
1515
this.name = name;
1616
}
1717

1818
@Override
19-
public Class<PROPERTY> asClass() {
19+
public Class<?> asClass() {
2020
return clazz;
2121
}
2222

doma-core/src/main/java/org/seasar/doma/jdbc/criteria/def/PropertyDef.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
public interface PropertyDef<PROPERTY> {
66

7-
Class<PROPERTY> asClass();
7+
Class<?> asClass();
88

99
EntityPropertyType<?, ?> asType();
1010

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,11 @@ private void printConstructor() {
8989
for (EmbeddablePropertyMeta p : embeddableMeta.getEmbeddablePropertyMetas()) {
9090
Pair<CtType, TypeMirror> pair = p.getCtType().accept(visitor, null);
9191
iprint(
92-
"this.%1$s = new %2$s<>(%3$s.class, entityType, name + \".%1$s\");%n",
92+
"this.%1$s = new %2$s<%3$s>(%4$s.class, entityType, name + \".%1$s\");%n",
9393
/* 1 */ p.getName(),
9494
/* 2 */ DefaultPropertyDef.class,
95-
/* 3 */ pair.fst.getQualifiedName());
95+
/* 3 */ pair.snd,
96+
/* 4 */ pair.fst.getQualifiedName());
9697
}
9798
iprint(
9899
"java.util.List<%1$s<?>> __list = new java.util.ArrayList<>(%2$s);%n",

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ private void printPropertyDefFields() {
109109
} else {
110110
Pair<CtType, TypeMirror> pair = p.getCtType().accept(visitor, null);
111111
iprint(
112-
"public final %1$s<%2$s> %3$s = new %4$s<>(%5$s.class, __entityType, \"%3$s\");%n",
112+
"public final %1$s<%2$s> %3$s = new %4$s<%2$s>(%5$s.class, __entityType, \"%3$s\");%n",
113113
/* 1 */ PropertyDef.class,
114114
/* 2 */ pair.snd,
115115
/* 3 */ p.getName(),

doma-processor/src/test/resources/org/seasar/doma/internal/apt/processor/embeddabledesc/EmbeddableDescProcessorOptionTest__Address.txt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@ public final class QAddressDef implements org.seasar.doma.jdbc.criteria.def.Embe
2323
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<java.lang.Long> optionalLong;
2424

2525
public QAddressDef(org.seasar.doma.jdbc.entity.EntityType<?> entityType, String name) {
26-
this.streetNo = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<>(java.lang.Integer.class, entityType, name + ".streetNo");
27-
this.city = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<>(org.seasar.doma.internal.apt.processor.embeddabledesc.City.class, entityType, name + ".city");
28-
this.optional = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<>(java.lang.String.class, entityType, name + ".optional");
29-
this.optionalDouble = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<>(double.class, entityType, name + ".optionalDouble");
30-
this.optionalInt = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<>(int.class, entityType, name + ".optionalInt");
31-
this.optionalLong = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<>(long.class, entityType, name + ".optionalLong");
26+
this.streetNo = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<java.lang.Integer>(java.lang.Integer.class, entityType, name + ".streetNo");
27+
this.city = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<org.seasar.doma.internal.apt.processor.embeddabledesc.City>(org.seasar.doma.internal.apt.processor.embeddabledesc.City.class, entityType, name + ".city");
28+
this.optional = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<java.lang.String>(java.lang.String.class, entityType, name + ".optional");
29+
this.optionalDouble = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<java.lang.Double>(double.class, entityType, name + ".optionalDouble");
30+
this.optionalInt = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<java.lang.Integer>(int.class, entityType, name + ".optionalInt");
31+
this.optionalLong = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<java.lang.Long>(long.class, entityType, name + ".optionalLong");
3232
java.util.List<org.seasar.doma.jdbc.criteria.def.PropertyDef<?>> __list = new java.util.ArrayList<>(6);
3333
__list.add(this.streetNo);
3434
__list.add(this.city);

doma-processor/src/test/resources/org/seasar/doma/internal/apt/processor/embeddabledesc/EmbeddableDescProcessorTest__Address.txt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@ public final class Address_ implements org.seasar.doma.jdbc.criteria.def.Embedda
2323
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<java.lang.Long> optionalLong;
2424

2525
public Address_(org.seasar.doma.jdbc.entity.EntityType<?> entityType, String name) {
26-
this.streetNo = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<>(java.lang.Integer.class, entityType, name + ".streetNo");
27-
this.city = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<>(org.seasar.doma.internal.apt.processor.embeddabledesc.City.class, entityType, name + ".city");
28-
this.optional = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<>(java.lang.String.class, entityType, name + ".optional");
29-
this.optionalDouble = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<>(double.class, entityType, name + ".optionalDouble");
30-
this.optionalInt = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<>(int.class, entityType, name + ".optionalInt");
31-
this.optionalLong = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<>(long.class, entityType, name + ".optionalLong");
26+
this.streetNo = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<java.lang.Integer>(java.lang.Integer.class, entityType, name + ".streetNo");
27+
this.city = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<org.seasar.doma.internal.apt.processor.embeddabledesc.City>(org.seasar.doma.internal.apt.processor.embeddabledesc.City.class, entityType, name + ".city");
28+
this.optional = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<java.lang.String>(java.lang.String.class, entityType, name + ".optional");
29+
this.optionalDouble = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<java.lang.Double>(double.class, entityType, name + ".optionalDouble");
30+
this.optionalInt = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<java.lang.Integer>(int.class, entityType, name + ".optionalInt");
31+
this.optionalLong = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<java.lang.Long>(long.class, entityType, name + ".optionalLong");
3232
java.util.List<org.seasar.doma.jdbc.criteria.def.PropertyDef<?>> __list = new java.util.ArrayList<>(6);
3333
__list.add(this.streetNo);
3434
__list.add(this.city);

doma-processor/src/test/resources/org/seasar/doma/internal/apt/processor/entitydesc/EntityDescProcessorOptionTest__Emp.txt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,19 @@ public final class QEmpDef implements org.seasar.doma.jdbc.criteria.def.EntityDe
1212

1313
private final java.util.List<org.seasar.doma.jdbc.criteria.def.PropertyDef<?>> __allPropertyDefs;
1414

15-
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<java.lang.Integer> id = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<>(java.lang.Integer.class, __entityType, "id");
15+
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<java.lang.Integer> id = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<java.lang.Integer>(java.lang.Integer.class, __entityType, "id");
1616

17-
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<org.seasar.doma.internal.apt.processor.entitydesc.Name> name = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<>(org.seasar.doma.internal.apt.processor.entitydesc.Name.class, __entityType, "name");
17+
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<org.seasar.doma.internal.apt.processor.entitydesc.Name> name = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<org.seasar.doma.internal.apt.processor.entitydesc.Name>(org.seasar.doma.internal.apt.processor.entitydesc.Name.class, __entityType, "name");
1818

1919
public final org.seasar.doma.internal.apt.processor.entitydesc.QEmpInfoDef empInfo = new org.seasar.doma.internal.apt.processor.entitydesc.QEmpInfoDef(__entityType, "empInfo");
2020

21-
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<java.lang.String> optional = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<>(java.lang.String.class, __entityType, "optional");
21+
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<java.lang.String> optional = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<java.lang.String>(java.lang.String.class, __entityType, "optional");
2222

23-
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<java.lang.Double> optionalDouble = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<>(double.class, __entityType, "optionalDouble");
23+
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<java.lang.Double> optionalDouble = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<java.lang.Double>(double.class, __entityType, "optionalDouble");
2424

25-
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<java.lang.Integer> optionalInt = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<>(int.class, __entityType, "optionalInt");
25+
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<java.lang.Integer> optionalInt = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<java.lang.Integer>(int.class, __entityType, "optionalInt");
2626

27-
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<java.lang.Long> optionalLong = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<>(long.class, __entityType, "optionalLong");
27+
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<java.lang.Long> optionalLong = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<java.lang.Long>(long.class, __entityType, "optionalLong");
2828

2929
public QEmpDef() {
3030
java.util.ArrayList<org.seasar.doma.jdbc.criteria.def.PropertyDef<?>> __list = new java.util.ArrayList<>(7);

doma-processor/src/test/resources/org/seasar/doma/internal/apt/processor/entitydesc/EntityDescProcessorTest__Emp.txt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,19 @@ public final class Emp_ implements org.seasar.doma.jdbc.criteria.def.EntityDef<o
1212

1313
private final java.util.List<org.seasar.doma.jdbc.criteria.def.PropertyDef<?>> __allPropertyDefs;
1414

15-
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<java.lang.Integer> id = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<>(java.lang.Integer.class, __entityType, "id");
15+
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<java.lang.Integer> id = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<java.lang.Integer>(java.lang.Integer.class, __entityType, "id");
1616

17-
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<org.seasar.doma.internal.apt.processor.entitydesc.Name> name = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<>(org.seasar.doma.internal.apt.processor.entitydesc.Name.class, __entityType, "name");
17+
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<org.seasar.doma.internal.apt.processor.entitydesc.Name> name = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<org.seasar.doma.internal.apt.processor.entitydesc.Name>(org.seasar.doma.internal.apt.processor.entitydesc.Name.class, __entityType, "name");
1818

1919
public final org.seasar.doma.internal.apt.processor.entitydesc.EmpInfo_ empInfo = new org.seasar.doma.internal.apt.processor.entitydesc.EmpInfo_(__entityType, "empInfo");
2020

21-
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<java.lang.String> optional = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<>(java.lang.String.class, __entityType, "optional");
21+
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<java.lang.String> optional = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<java.lang.String>(java.lang.String.class, __entityType, "optional");
2222

23-
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<java.lang.Double> optionalDouble = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<>(double.class, __entityType, "optionalDouble");
23+
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<java.lang.Double> optionalDouble = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<java.lang.Double>(double.class, __entityType, "optionalDouble");
2424

25-
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<java.lang.Integer> optionalInt = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<>(int.class, __entityType, "optionalInt");
25+
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<java.lang.Integer> optionalInt = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<java.lang.Integer>(int.class, __entityType, "optionalInt");
2626

27-
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<java.lang.Long> optionalLong = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<>(long.class, __entityType, "optionalLong");
27+
public final org.seasar.doma.jdbc.criteria.def.PropertyDef<java.lang.Long> optionalLong = new org.seasar.doma.jdbc.criteria.def.DefaultPropertyDef<java.lang.Long>(long.class, __entityType, "optionalLong");
2828

2929
public Emp_() {
3030
java.util.ArrayList<org.seasar.doma.jdbc.criteria.def.PropertyDef<?>> __list = new java.util.ArrayList<>(7);

0 commit comments

Comments
 (0)