Skip to content

Commit e542ab7

Browse files
committed
Merge pull request #107 from domaframework/issue-106
注釈処理で生成されるコードが冗長なジェネリクスを含む問題を修正
2 parents 9172a56 + b676d0a commit e542ab7

File tree

38 files changed

+337
-416
lines changed

38 files changed

+337
-416
lines changed

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

Lines changed: 202 additions & 286 deletions
Large diffs are not rendered by default.

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,12 +150,17 @@ protected void printNewDomainMethod() {
150150
iprint(" }%n");
151151
}
152152
if (domainMeta.providesConstructor()) {
153+
String domainClassName = domainMeta.getTypeElement()
154+
.getQualifiedName().toString();
155+
String simpleTypeName = domainMeta.isParametarized() ? domainClassName
156+
+ "<>"
157+
: domainClassName;
153158
if (primitive) {
154159
iprint(" return new %1$s(%2$s.unbox(value));%n",
155-
/* 1 */typeName, BoxedPrimitiveUtil.class.getName());
160+
/* 1 */simpleTypeName, BoxedPrimitiveUtil.class.getName());
156161
} else {
157162
iprint(" return new %1$s(value);%n",
158-
/* 1 */typeName);
163+
/* 1 */simpleTypeName);
159164
}
160165
} else {
161166
if (primitive) {

src/test/resources/org/seasar/doma/internal/apt/dao/DaoProcessorTest_AutoFunction.txt

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,10 @@ public class AutoFunctionDaoImpl extends org.seasar.doma.internal.jdbc.dao.Abstr
7979
__query.setSchemaName("");
8080
__query.setFunctionName("executeFunction");
8181
__query.setQuoteRequired(false);
82-
__query.setResultParameter(new org.seasar.doma.internal.jdbc.sql.BasicSingleResultParameter<java.lang.String>(org.seasar.doma.wrapper.StringWrapper::new, false));
83-
__query.addParameter(new org.seasar.doma.internal.jdbc.sql.BasicInParameter<java.lang.Integer>(org.seasar.doma.wrapper.IntegerWrapper::new, arg1));
84-
__query.addParameter(new org.seasar.doma.internal.jdbc.sql.BasicInOutParameter<java.lang.Integer>(org.seasar.doma.wrapper.IntegerWrapper::new, arg2));
85-
__query.addParameter(new org.seasar.doma.internal.jdbc.sql.BasicOutParameter<java.lang.Integer>(org.seasar.doma.wrapper.IntegerWrapper::new, arg3));
82+
__query.setResultParameter(new org.seasar.doma.internal.jdbc.sql.BasicSingleResultParameter<>(org.seasar.doma.wrapper.StringWrapper::new, false));
83+
__query.addParameter(new org.seasar.doma.internal.jdbc.sql.BasicInParameter<>(org.seasar.doma.wrapper.IntegerWrapper::new, arg1));
84+
__query.addParameter(new org.seasar.doma.internal.jdbc.sql.BasicInOutParameter<>(org.seasar.doma.wrapper.IntegerWrapper::new, arg2));
85+
__query.addParameter(new org.seasar.doma.internal.jdbc.sql.BasicOutParameter<>(org.seasar.doma.wrapper.IntegerWrapper::new, arg3));
8686
__query.setCallerClassName("org.seasar.doma.internal.apt.dao.AutoFunctionDaoImpl");
8787
__query.setCallerMethodName("executeFunction");
8888
__query.setQueryTimeout(-1);
@@ -116,10 +116,10 @@ public class AutoFunctionDaoImpl extends org.seasar.doma.internal.jdbc.dao.Abstr
116116
__query.setSchemaName("");
117117
__query.setFunctionName("executeFunction2");
118118
__query.setQuoteRequired(false);
119-
__query.setResultParameter(new org.seasar.doma.internal.jdbc.sql.DomainSingleResultParameter<java.lang.String, example.domain.PhoneNumber>(example.domain._PhoneNumber.getSingletonInternal()));
120-
__query.addParameter(new org.seasar.doma.internal.jdbc.sql.DomainInParameter<java.lang.String, example.domain.PhoneNumber>(example.domain._PhoneNumber.getSingletonInternal(), arg1));
121-
__query.addParameter(new org.seasar.doma.internal.jdbc.sql.DomainInOutParameter<java.lang.String, example.domain.PhoneNumber>(example.domain._PhoneNumber.getSingletonInternal(), arg2));
122-
__query.addParameter(new org.seasar.doma.internal.jdbc.sql.DomainOutParameter<java.lang.String, example.domain.PhoneNumber>(example.domain._PhoneNumber.getSingletonInternal(), arg3));
119+
__query.setResultParameter(new org.seasar.doma.internal.jdbc.sql.DomainSingleResultParameter<>(example.domain._PhoneNumber.getSingletonInternal()));
120+
__query.addParameter(new org.seasar.doma.internal.jdbc.sql.DomainInParameter<>(example.domain._PhoneNumber.getSingletonInternal(), arg1));
121+
__query.addParameter(new org.seasar.doma.internal.jdbc.sql.DomainInOutParameter<>(example.domain._PhoneNumber.getSingletonInternal(), arg2));
122+
__query.addParameter(new org.seasar.doma.internal.jdbc.sql.DomainOutParameter<>(example.domain._PhoneNumber.getSingletonInternal(), arg3));
123123
__query.setCallerClassName("org.seasar.doma.internal.apt.dao.AutoFunctionDaoImpl");
124124
__query.setCallerMethodName("executeFunction2");
125125
__query.setQueryTimeout(-1);
@@ -150,8 +150,8 @@ public class AutoFunctionDaoImpl extends org.seasar.doma.internal.jdbc.dao.Abstr
150150
__query.setSchemaName("");
151151
__query.setFunctionName("executeFunction3");
152152
__query.setQuoteRequired(false);
153-
__query.setResultParameter(new org.seasar.doma.internal.jdbc.sql.BasicResultListParameter<java.lang.String>(org.seasar.doma.wrapper.StringWrapper::new));
154-
__query.addParameter(new org.seasar.doma.internal.jdbc.sql.BasicListParameter<java.lang.String>(org.seasar.doma.wrapper.StringWrapper::new, arg1, "arg1"));
153+
__query.setResultParameter(new org.seasar.doma.internal.jdbc.sql.BasicResultListParameter<>(org.seasar.doma.wrapper.StringWrapper::new));
154+
__query.addParameter(new org.seasar.doma.internal.jdbc.sql.BasicListParameter<>(org.seasar.doma.wrapper.StringWrapper::new, arg1, "arg1"));
155155
__query.setCallerClassName("org.seasar.doma.internal.apt.dao.AutoFunctionDaoImpl");
156156
__query.setCallerMethodName("executeFunction3");
157157
__query.setQueryTimeout(-1);
@@ -182,8 +182,8 @@ public class AutoFunctionDaoImpl extends org.seasar.doma.internal.jdbc.dao.Abstr
182182
__query.setSchemaName("");
183183
__query.setFunctionName("executeFunction4");
184184
__query.setQuoteRequired(false);
185-
__query.setResultParameter(new org.seasar.doma.internal.jdbc.sql.DomainResultListParameter<java.lang.String, example.domain.PhoneNumber>(example.domain._PhoneNumber.getSingletonInternal()));
186-
__query.addParameter(new org.seasar.doma.internal.jdbc.sql.DomainListParameter<java.lang.String, example.domain.PhoneNumber>(example.domain._PhoneNumber.getSingletonInternal(), arg1, "arg1"));
185+
__query.setResultParameter(new org.seasar.doma.internal.jdbc.sql.DomainResultListParameter<>(example.domain._PhoneNumber.getSingletonInternal()));
186+
__query.addParameter(new org.seasar.doma.internal.jdbc.sql.DomainListParameter<>(example.domain._PhoneNumber.getSingletonInternal(), arg1, "arg1"));
187187
__query.setCallerClassName("org.seasar.doma.internal.apt.dao.AutoFunctionDaoImpl");
188188
__query.setCallerMethodName("executeFunction4");
189189
__query.setQueryTimeout(-1);
@@ -214,8 +214,8 @@ public class AutoFunctionDaoImpl extends org.seasar.doma.internal.jdbc.dao.Abstr
214214
__query.setSchemaName("");
215215
__query.setFunctionName("executeFunction5");
216216
__query.setQuoteRequired(false);
217-
__query.setResultParameter(new org.seasar.doma.internal.jdbc.sql.EntityResultListParameter<org.seasar.doma.internal.apt.entity.Emp>(org.seasar.doma.internal.apt.entity._Emp.getSingletonInternal(), false));
218-
__query.addParameter(new org.seasar.doma.internal.jdbc.sql.EntityListParameter<org.seasar.doma.internal.apt.entity.Emp>(org.seasar.doma.internal.apt.entity._Emp.getSingletonInternal(), arg1, "arg1", false));
217+
__query.setResultParameter(new org.seasar.doma.internal.jdbc.sql.EntityResultListParameter<>(org.seasar.doma.internal.apt.entity._Emp.getSingletonInternal(), false));
218+
__query.addParameter(new org.seasar.doma.internal.jdbc.sql.EntityListParameter<>(org.seasar.doma.internal.apt.entity._Emp.getSingletonInternal(), arg1, "arg1", false));
219219
__query.setCallerClassName("org.seasar.doma.internal.apt.dao.AutoFunctionDaoImpl");
220220
__query.setCallerMethodName("executeFunction5");
221221
__query.setQueryTimeout(-1);
@@ -249,10 +249,10 @@ public class AutoFunctionDaoImpl extends org.seasar.doma.internal.jdbc.dao.Abstr
249249
__query.setSchemaName("");
250250
__query.setFunctionName("executeFunction6");
251251
__query.setQuoteRequired(false);
252-
__query.setResultParameter(new org.seasar.doma.internal.jdbc.sql.BasicSingleResultParameter<org.seasar.doma.internal.apt.dao.AutoFunctionDao.MyEnum>(() -> new org.seasar.doma.wrapper.EnumWrapper<org.seasar.doma.internal.apt.dao.AutoFunctionDao.MyEnum>(org.seasar.doma.internal.apt.dao.AutoFunctionDao.MyEnum.class), false));
253-
__query.addParameter(new org.seasar.doma.internal.jdbc.sql.BasicInParameter<org.seasar.doma.internal.apt.dao.AutoFunctionDao.MyEnum>(() -> new org.seasar.doma.wrapper.EnumWrapper<org.seasar.doma.internal.apt.dao.AutoFunctionDao.MyEnum>(org.seasar.doma.internal.apt.dao.AutoFunctionDao.MyEnum.class, arg1)));
254-
__query.addParameter(new org.seasar.doma.internal.jdbc.sql.BasicInOutParameter<org.seasar.doma.internal.apt.dao.AutoFunctionDao.MyEnum>(() -> new org.seasar.doma.wrapper.EnumWrapper<org.seasar.doma.internal.apt.dao.AutoFunctionDao.MyEnum>(org.seasar.doma.internal.apt.dao.AutoFunctionDao.MyEnum.class), arg2));
255-
__query.addParameter(new org.seasar.doma.internal.jdbc.sql.BasicOutParameter<org.seasar.doma.internal.apt.dao.AutoFunctionDao.MyEnum>(() -> new org.seasar.doma.wrapper.EnumWrapper<org.seasar.doma.internal.apt.dao.AutoFunctionDao.MyEnum>(org.seasar.doma.internal.apt.dao.AutoFunctionDao.MyEnum.class), arg3));
252+
__query.setResultParameter(new org.seasar.doma.internal.jdbc.sql.BasicSingleResultParameter<>(() -> new org.seasar.doma.wrapper.EnumWrapper<org.seasar.doma.internal.apt.dao.AutoFunctionDao.MyEnum>(org.seasar.doma.internal.apt.dao.AutoFunctionDao.MyEnum.class), false));
253+
__query.addParameter(new org.seasar.doma.internal.jdbc.sql.BasicInParameter<>(() -> new org.seasar.doma.wrapper.EnumWrapper<org.seasar.doma.internal.apt.dao.AutoFunctionDao.MyEnum>(org.seasar.doma.internal.apt.dao.AutoFunctionDao.MyEnum.class, arg1)));
254+
__query.addParameter(new org.seasar.doma.internal.jdbc.sql.BasicInOutParameter<>(() -> new org.seasar.doma.wrapper.EnumWrapper<org.seasar.doma.internal.apt.dao.AutoFunctionDao.MyEnum>(org.seasar.doma.internal.apt.dao.AutoFunctionDao.MyEnum.class), arg2));
255+
__query.addParameter(new org.seasar.doma.internal.jdbc.sql.BasicOutParameter<>(() -> new org.seasar.doma.wrapper.EnumWrapper<org.seasar.doma.internal.apt.dao.AutoFunctionDao.MyEnum>(org.seasar.doma.internal.apt.dao.AutoFunctionDao.MyEnum.class), arg3));
256256
__query.setCallerClassName("org.seasar.doma.internal.apt.dao.AutoFunctionDaoImpl");
257257
__query.setCallerMethodName("executeFunction6");
258258
__query.setQueryTimeout(-1);

0 commit comments

Comments
 (0)