All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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