Skip to content

Commit 9aa79e9

Browse files
committed
Fix #43
すべての型が`TypeElement`に変換できることを想定していたのが間違いでした。 `byte[]` は `TypeElement` に変換できないので `TypeMirror` を型名に変換してから文字列として扱うようにいしました。
1 parent 780a180 commit 9aa79e9

File tree

3 files changed

+18
-21
lines changed

3 files changed

+18
-21
lines changed

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

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ protected void printClass() {
101101
printGenerated();
102102
iprint("public final class %1$s extends %2$s<%3$s, %4$s> {%n",
103103
simpleMetaTypeName, AbstractDomainType.class.getName(),
104-
domainMeta.getValueElement().getQualifiedName(), domainTypeName);
104+
domainMeta.getValueTypeName(), domainTypeName);
105105
print("%n");
106106
indent();
107107
printValidateVersionStaticInitializer();
@@ -129,8 +129,8 @@ protected void printConstructors() {
129129
iprint("private %1$s() {%n", simpleName);
130130
if (domainMeta.getWrapperCtType().getBasicCtType().isEnum()) {
131131
iprint(" super(() -> new %1$s(%2$s.class));%n", domainMeta
132-
.getWrapperCtType().getTypeName(), domainMeta
133-
.getValueElement().getQualifiedName());
132+
.getWrapperCtType().getTypeName(),
133+
domainMeta.getValueTypeName());
134134
iprint("}%n");
135135
} else {
136136
iprint(" super(() -> new %1$s());%n", domainMeta
@@ -154,7 +154,7 @@ protected void printNewDomainMethod() {
154154
}
155155
iprint("@Override%n");
156156
iprint("protected %1$s newDomain(%2$s value) {%n", domainTypeName,
157-
domainMeta.getValueElement().getQualifiedName());
157+
domainMeta.getValueTypeName());
158158
if (parametarized) {
159159
iprint(" return (%1$s) converter.fromValueToDomain(value);%n",
160160
domainTypeName);
@@ -167,8 +167,8 @@ protected void printNewDomainMethod() {
167167

168168
protected void printGetBasicValueMethod() {
169169
iprint("@Override%n");
170-
iprint("protected %1$s getBasicValue(%2$s domain) {%n", domainMeta
171-
.getValueElement().getQualifiedName(), domainTypeName);
170+
iprint("protected %1$s getBasicValue(%2$s domain) {%n",
171+
domainMeta.getValueTypeName(), domainTypeName);
172172
iprint(" if (domain == null) {%n");
173173
iprint(" return null;%n");
174174
iprint(" }%n");
@@ -180,8 +180,7 @@ protected void printGetBasicValueMethod() {
180180
protected void printGetBasicClassMethod() {
181181
iprint("@Override%n");
182182
iprint("public Class<?> getBasicClass() {%n");
183-
iprint(" return %1$s.class;%n", domainMeta.getValueElement()
184-
.getQualifiedName());
183+
iprint(" return %1$s.class;%n", domainMeta.getValueTypeName());
185184
iprint("}%n");
186185
print("%n");
187186
}

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616
package org.seasar.doma.internal.apt.meta;
1717

18-
import static org.seasar.doma.internal.util.AssertionUtil.*;
18+
import static org.seasar.doma.internal.util.AssertionUtil.assertNotNull;
1919

2020
import javax.lang.model.element.TypeElement;
2121

@@ -31,7 +31,7 @@ public class ExternalDomainMeta implements TypeElementMeta {
3131

3232
protected WrapperCtType wrapperCtType;
3333

34-
protected TypeElement valueElement;
34+
protected String valueTypeName;
3535

3636
protected TypeElement domainElement;
3737

@@ -52,12 +52,12 @@ public void setWrapperCtType(WrapperCtType wrapperCtType) {
5252
this.wrapperCtType = wrapperCtType;
5353
}
5454

55-
public TypeElement getValueElement() {
56-
return valueElement;
55+
public String getValueTypeName() {
56+
return valueTypeName;
5757
}
5858

59-
public void setValueElement(TypeElement valueElement) {
60-
this.valueElement = valueElement;
59+
public void setValueTypeName(String valueTypeName) {
60+
this.valueTypeName = valueTypeName;
6161
}
6262

6363
public TypeElement getDomainElement() {

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

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
*/
1616
package org.seasar.doma.internal.apt.meta;
1717

18-
import static org.seasar.doma.internal.util.AssertionUtil.*;
18+
import static org.seasar.doma.internal.util.AssertionUtil.assertEquals;
19+
import static org.seasar.doma.internal.util.AssertionUtil.assertNotNull;
1920

2021
import java.util.List;
2122

@@ -144,16 +145,13 @@ protected void doDomainType(TypeElement convElement, TypeMirror domainType,
144145

145146
protected void doValueType(TypeElement convElement, TypeMirror valueType,
146147
ExternalDomainMeta meta) {
147-
TypeElement valueElement = TypeMirrorUtil.toTypeElement(valueType, env);
148-
if (valueElement == null) {
149-
throw new AptIllegalStateException(valueType.toString());
150-
}
151-
meta.setValueElement(valueElement);
148+
String valueTypeName = TypeMirrorUtil.getTypeName(valueType, env);
149+
meta.setValueTypeName(valueTypeName);
152150

153151
BasicCtType basicCtType = BasicCtType.newInstance(valueType, env);
154152
if (basicCtType == null) {
155153
throw new AptException(Message.DOMA4194, env, convElement,
156-
valueElement.getQualifiedName());
154+
valueTypeName);
157155
}
158156
meta.setWrapperCtType(basicCtType.getWrapperCtType());
159157
}

0 commit comments

Comments
 (0)