
com.wangjiegulu.rapidooo.library.compiler.part.impl.ToMethod2PartBrew Maven / Gradle / Ivy
package com.wangjiegulu.rapidooo.library.compiler.part.impl;
import com.squareup.javapoet.MethodSpec;
import com.squareup.javapoet.TypeSpec;
import com.wangjiegulu.rapidooo.library.compiler.util.TextUtil;
import com.wangjiegulu.rapidooo.library.compiler.oooentry.OOOEntry;
import com.wangjiegulu.rapidooo.library.compiler.part.PartBrew;
import javax.lang.model.element.Modifier;
/**
* Author: wangjie Email: [email protected] Date: 2019-06-13.
*/
public class ToMethod2PartBrew implements PartBrew {
@Override
public void brew(OOOEntry oooEntry, TypeSpec.Builder result) {
String fromParamName = TextUtil.firstCharLower(oooEntry.getFromSimpleName());
// to method 2
MethodSpec.Builder toFrom2Method = MethodSpec.methodBuilder("to" + oooEntry.getFromSimpleName())
.addModifiers(Modifier.PUBLIC)
.returns(oooEntry.getFromTypeName())
// TODO: 18/04/2018 feature wangjie `from` class use object pool ?
.addStatement(oooEntry.getFromSimpleName() + " " + fromParamName + " = new " + oooEntry.getFromSimpleName() + "()")
.addStatement("to" + oooEntry.getFromSimpleName() + "(" + fromParamName + ")")
.addStatement("return " + fromParamName);
result.addMethod(toFrom2Method.build());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy