Skip to content

Commit 31d320d

Browse files
committed
Introduce wrapper classes dedicated to primitive types
1 parent 9924d1c commit 31d320d

File tree

105 files changed

+1045
-279
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

105 files changed

+1045
-279
lines changed

src/main/java/org/seasar/doma/internal/apt/cttype/CtTypes.java

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,13 @@
7878
import org.seasar.doma.wrapper.LongWrapper;
7979
import org.seasar.doma.wrapper.NClobWrapper;
8080
import org.seasar.doma.wrapper.ObjectWrapper;
81+
import org.seasar.doma.wrapper.PrimitiveBooleanWrapper;
82+
import org.seasar.doma.wrapper.PrimitiveByteWrapper;
83+
import org.seasar.doma.wrapper.PrimitiveDoubleWrapper;
84+
import org.seasar.doma.wrapper.PrimitiveFloatWrapper;
85+
import org.seasar.doma.wrapper.PrimitiveIntWrapper;
86+
import org.seasar.doma.wrapper.PrimitiveLongWrapper;
87+
import org.seasar.doma.wrapper.PrimitiveShortWrapper;
8188
import org.seasar.doma.wrapper.SQLXMLWrapper;
8289
import org.seasar.doma.wrapper.ShortWrapper;
8390
import org.seasar.doma.wrapper.StringWrapper;
@@ -638,19 +645,19 @@ public Class<?> visitDeclared(DeclaredType t, Void p) {
638645
public Class<?> visitPrimitive(PrimitiveType t, Void p) {
639646
switch (t.getKind()) {
640647
case BOOLEAN:
641-
return BooleanWrapper.class;
648+
return PrimitiveBooleanWrapper.class;
642649
case BYTE:
643-
return ByteWrapper.class;
650+
return PrimitiveByteWrapper.class;
644651
case SHORT:
645-
return ShortWrapper.class;
652+
return PrimitiveShortWrapper.class;
646653
case INT:
647-
return IntegerWrapper.class;
654+
return PrimitiveIntWrapper.class;
648655
case LONG:
649-
return LongWrapper.class;
656+
return PrimitiveLongWrapper.class;
650657
case FLOAT:
651-
return FloatWrapper.class;
658+
return PrimitiveFloatWrapper.class;
652659
case DOUBLE:
653-
return DoubleWrapper.class;
660+
return PrimitiveDoubleWrapper.class;
654661
case CHAR:
655662
return null;
656663
default:

src/main/java/org/seasar/doma/internal/apt/generator/DaoImplMethodGenerator.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1011,11 +1011,10 @@ public Void visitBasicSingleResultParameterMeta(
10111011
BasicSingleResultParameterMeta m, AutoModuleQueryMeta p) {
10121012
final BasicCtType basicCtType = m.getBasicCtType();
10131013
iprint(
1014-
"__query.setResultParameter(new %1$s<%2$s>(%3$s, %4$s));%n",
1014+
"__query.setResultParameter(new %1$s<%2$s>(%3$s));%n",
10151015
/* 1 */ BasicSingleResultParameter.class,
10161016
/* 2 */ basicCtType.getBoxedType(),
1017-
/* 3 */ basicCtType.getWrapperSupplierCode(),
1018-
/* 4 */ basicCtType.isPrimitive());
1017+
/* 3 */ basicCtType.getWrapperSupplierCode());
10191018
return null;
10201019
}
10211020

@@ -1701,15 +1700,14 @@ private SqlFileSelectQueryReturnCtTypeVisitor(SqlFileSelectQueryMeta m) {
17011700
@Override
17021701
public Void visitBasicCtType(final BasicCtType basicCtType, Boolean optional) {
17031702
iprint(
1704-
"%1$s<%2$s> __command = getCommandImplementors().create%7$s(%8$s, __query, new %3$s<%6$s>(%4$s, %5$s));%n",
1703+
"%1$s<%2$s> __command = getCommandImplementors().create%6$s(%7$s, __query, new %3$s<%5$s>(%4$s));%n",
17051704
/* 1 */ commandClass,
17061705
/* 2 */ resultBoxedType,
17071706
/* 3 */ getBasicSingleResultHandler(optional),
17081707
/* 4 */ basicCtType.getWrapperSupplierCode(),
1709-
/* 5 */ basicCtType.isPrimitive(),
1710-
/* 6 */ basicCtType.getBoxedType(),
1711-
/* 7 */ commandName,
1712-
/* 8 */ methodName);
1708+
/* 5 */ basicCtType.getBoxedType(),
1709+
/* 6 */ commandName,
1710+
/* 7 */ methodName);
17131711
return null;
17141712
}
17151713

src/main/java/org/seasar/doma/internal/apt/generator/ScalarMetaFactory.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,8 @@ public ScalarMeta visitBasicCtType(BasicCtType basicCtType, Boolean optional) {
8686
OptionalBasicScalar.class, basicCtType.getWrapperSupplierCode());
8787
} else {
8888
p.print(
89-
"() -> new %1$s<>(%2$s, %3$s)",
90-
BasicScalar.class,
91-
basicCtType.getWrapperSupplierCode(),
92-
basicCtType.isPrimitive());
89+
"() -> new %1$s<>(%2$s)",
90+
BasicScalar.class, basicCtType.getWrapperSupplierCode());
9391
}
9492
});
9593
return defaultAction(basicCtType, optional);

src/main/java/org/seasar/doma/internal/jdbc/command/BasicCollectorHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@ public class BasicCollectorHandler<BASIC, RESULT>
1010

1111
public BasicCollectorHandler(
1212
Supplier<Wrapper<BASIC>> supplier, Collector<BASIC, ?, RESULT> collector) {
13-
super(() -> new BasicScalar<>(supplier, false), collector);
13+
super(() -> new BasicScalar<>(supplier), collector);
1414
}
1515
}

src/main/java/org/seasar/doma/internal/jdbc/command/BasicResultListHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
public class BasicResultListHandler<BASIC> extends ScalarResultListHandler<BASIC, BASIC> {
1010

1111
public BasicResultListHandler(Supplier<Wrapper<BASIC>> supplier) {
12-
super(() -> new BasicScalar<>(supplier, false));
12+
super(() -> new BasicScalar<>(supplier));
1313
assertNotNull(supplier);
1414
}
1515
}

src/main/java/org/seasar/doma/internal/jdbc/command/BasicSingleResultHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
public class BasicSingleResultHandler<BASIC> extends ScalarSingleResultHandler<BASIC, BASIC> {
88

9-
public BasicSingleResultHandler(Supplier<Wrapper<BASIC>> supplier, boolean primitive) {
10-
super(() -> new BasicScalar<>(supplier, primitive));
9+
public BasicSingleResultHandler(Supplier<Wrapper<BASIC>> supplier) {
10+
super(() -> new BasicScalar<>(supplier));
1111
}
1212
}

src/main/java/org/seasar/doma/internal/jdbc/command/BasicStreamHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@ public class BasicStreamHandler<BASIC, RESULT> extends ScalarStreamHandler<BASIC
1010

1111
public BasicStreamHandler(
1212
Supplier<Wrapper<BASIC>> supplier, Function<Stream<BASIC>, RESULT> mapper) {
13-
super(() -> new BasicScalar<>(supplier, false), mapper);
13+
super(() -> new BasicScalar<>(supplier), mapper);
1414
}
1515
}

src/main/java/org/seasar/doma/internal/jdbc/command/MapProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public Map<String, Object> get(ResultSet resultSet) throws SQLException {
4242
for (Map.Entry<Integer, String> entry : indexMap.entrySet()) {
4343
Integer index = entry.getKey();
4444
String key = entry.getValue();
45-
BasicScalar<Object> scalar = new BasicScalar<>(() -> new ObjectWrapper(), false);
45+
BasicScalar<Object> scalar = new BasicScalar<>(() -> new ObjectWrapper());
4646
fetch(resultSet, scalar, index, jdbcMappingVisitor);
4747
map.put(key, scalar.get());
4848
}

src/main/java/org/seasar/doma/internal/jdbc/command/OptionalBasicSingleResultHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
public class OptionalBasicSingleResultHandler<BASIC>
1111
extends ScalarSingleResultHandler<BASIC, Optional<BASIC>> {
1212

13-
public OptionalBasicSingleResultHandler(Supplier<Wrapper<BASIC>> supplier, boolean primitive) {
13+
public OptionalBasicSingleResultHandler(Supplier<Wrapper<BASIC>> supplier) {
1414
super(() -> new OptionalBasicScalar<>(supplier));
1515
assertNotNull(supplier);
1616
}

src/main/java/org/seasar/doma/internal/jdbc/scalar/BasicScalar.java

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,10 @@ public class BasicScalar<BASIC> implements Scalar<BASIC, BASIC> {
99

1010
protected final Wrapper<BASIC> wrapper;
1111

12-
protected final boolean primitive;
13-
14-
public BasicScalar(Supplier<Wrapper<BASIC>> supplier, boolean primitive) {
12+
public BasicScalar(Supplier<Wrapper<BASIC>> supplier) {
1513
AssertionUtil.assertNotNull(supplier);
1614
this.wrapper = supplier.get();
1715
AssertionUtil.assertNotNull(this.wrapper);
18-
this.primitive = primitive;
1916
}
2017

2118
@Override
@@ -30,32 +27,17 @@ public BASIC cast(Object value) {
3027

3128
@Override
3229
public BASIC get() {
33-
BASIC value = wrapper.get();
34-
if (value == null) {
35-
return getDefaultInternal();
36-
}
37-
return value;
30+
return wrapper.get();
3831
}
3932

4033
@Override
4134
public BASIC getDefault() {
42-
return getDefaultInternal();
43-
}
44-
45-
protected BASIC getDefaultInternal() {
46-
if (primitive) {
47-
return wrapper.getDefault();
48-
}
49-
return null;
35+
return wrapper.getDefault();
5036
}
5137

5238
@Override
5339
public void set(BASIC value) {
54-
if (value == null && primitive) {
55-
wrapper.set(wrapper.getDefault());
56-
} else {
57-
wrapper.set(value);
58-
}
40+
wrapper.set(value);
5941
}
6042

6143
@Override

0 commit comments

Comments
 (0)