io.javapoetext.expr.BaseJavaExpr Maven / Gradle / Ivy
package io.javapoetext.expr;
import io.javapoetext.CodeEmitter;
import io.javapoetext.stmt.AssignStatement;
import io.javapoetext.stmt.ExprStatement;
import io.javapoetext.stmt.StatementSpec;
/**
* Java表达式基类,发布通用的工具方法
*/
public abstract class BaseJavaExpr implements JavaExpr {
public PointerJExpr child(String child) {
return new PointerJExpr(this, new VariableJExpr(child));
}
public PointerJExpr call(String name, JavaExpr ...parameters) {
CallMethodJExpr call = new CallMethodJExpr(name);
call.addParameters(parameters);
return new PointerJExpr(this, call);
}
public PointerJExpr put(String name, JavaExpr expr) {
CallMethodJExpr call = new CallMethodJExpr("put");
call.addParameters(new StringJExpr(name), expr);
return new PointerJExpr(this, call);
}
public PointerJExpr get(String name) {
CallMethodJExpr call = new CallMethodJExpr("get");
call.addParameters(new StringJExpr(name));
return new PointerJExpr(this, call);
}
public AssignStatement assign(JavaExpr left) {
return new AssignStatement(this, left);
}
public StatementSpec end() {
return new ExprStatement(this);
}
public OperatorJExpr GT(JavaExpr right) {
return new OperatorJExpr(this, ">", right);
}
public OperatorJExpr GE(JavaExpr right) {
return new OperatorJExpr(this, ">=", right);
}
public OperatorJExpr LT(JavaExpr right) {
return new OperatorJExpr(this, "<", right);
}
public OperatorJExpr LE(JavaExpr right) {
return new OperatorJExpr(this, "<=", right);
}
public OperatorJExpr EQ(JavaExpr right) {
return new OperatorJExpr(this, "==", right);
}
public PointerJExpr dot(JavaExpr right) {
return new PointerJExpr(this, right);
}
@Override
public String toString() {
CodeEmitter emitter = new CodeEmitter();
this.emit(emitter);
return emitter.buildString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy