Skip to content

Commit 30793bd

Browse files
Merge pull request #29 from Omega-R/develop
Fix getter method
2 parents 945771a + 64bdb55 commit 30793bd

File tree

2 files changed

+28
-5
lines changed

2 files changed

+28
-5
lines changed

moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ElementToViewInterfaceInfoProcessor.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,12 @@ private ExecutableElement getSetterElement(ExecutableElement getterElement,
178178
if (setterElement.getSimpleName().contentEquals(setterMethod)) {
179179
List<? extends VariableElement> parameters = setterElement.getParameters();
180180
if (parameters.size() == 1) {
181-
if (parameters.get(0).asType().equals(getterElement.getReturnType())) {
181+
TypeMirror paramTypeMirror = parameters.get(0).asType();
182+
if (paramTypeMirror instanceof DeclaredType) {
183+
if (((DeclaredType) paramTypeMirror).asElement().equals(Util.asElement(getterElement.getReturnType()))) {
184+
return setterElement;
185+
}
186+
} else if (parameters.get(0).asType().equals(getterElement.getReturnType())) {
182187
return setterElement;
183188
}
184189
}

moxy-compiler/src/main/java/com/omegar/mvp/compiler/viewstate/ViewInterfaceInfoToViewStateJavaFileProcessor.java

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -221,14 +221,32 @@ private MethodSpec generateVoidMethod(DeclaredType enclosingType, CommandViewMet
221221

222222
private MethodSpec generateReturnMethod(DeclaredType enclosingType, ReturnViewMethod method, CommandViewMethod commandViewMethod) {
223223
String commandClassName = commandViewMethod.getCommandClassName();
224-
return MethodSpec.overriding(method.getElement(), enclosingType, mTypes)
224+
MethodSpec.Builder builder = MethodSpec.overriding(method.getElement(), enclosingType, mTypes)
225225
.beginControlFlow("for ($L viewCommand : mViewCommands.getCurrentState())", VIEW_COMMAND_CLASS_NAME)
226226
.beginControlFlow("if (viewCommand instanceof $L)", commandClassName)
227227
.addStatement("return (($L) viewCommand).$L", commandClassName, commandViewMethod.getArgumentsString())
228228
.endControlFlow()
229-
.endControlFlow()
230-
.addStatement("return null")
231-
.build();
229+
.endControlFlow();
230+
231+
switch (method.getReturnType().getKind()) {
232+
case BOOLEAN:
233+
builder.addStatement("return false");
234+
break;
235+
case BYTE:
236+
case SHORT:
237+
case INT:
238+
case LONG:
239+
case FLOAT:
240+
case CHAR:
241+
case DOUBLE:
242+
builder.addStatement("return 0");
243+
break;
244+
default:
245+
builder.addStatement("return null");
246+
break;
247+
}
248+
249+
return builder.build();
232250
}
233251

234252
private MethodSpec generateCommandConstructor(CommandViewMethod method) {

0 commit comments

Comments
 (0)