package io.vertx.codetrans.expression;
import com.sun.source.tree.LambdaExpressionTree;
import io.vertx.codegen.type.TypeInfo;
import io.vertx.codetrans.CodeBuilder;
import io.vertx.codetrans.CodeModel;
import io.vertx.codetrans.CodeWriter;
import java.util.List;
Author: Julien Viet
/**
* @author <a href="mailto:julien@julienviet.com">Julien Viet</a>
*/
public class LambdaExpressionModel extends ExpressionModel {
private final LambdaExpressionTree.BodyKind bodyKind;
private final List<TypeInfo> parameterTypes;
private final List<String> parameterNames;
private final CodeModel body;
public LambdaExpressionModel(CodeBuilder builder, LambdaExpressionTree.BodyKind bodyKind, List<TypeInfo> parameterTypes, List<String> parameterNames, CodeModel body) {
super(builder);
this.bodyKind = bodyKind;
this.parameterTypes = parameterTypes;
this.parameterNames = parameterNames;
this.body = body;
}
public LambdaExpressionTree.BodyKind getBodyKind() {
return bodyKind;
}
public List<TypeInfo> getParameterTypes() {
return parameterTypes;
}
public List<String> getParameterNames() {
return parameterNames;
}
public CodeModel getBody() {
return body;
}
@Override
public void render(CodeWriter writer) {
writer.renderLambda(bodyKind, parameterTypes, parameterNames, body);
}
}