
db.sql.api.impl.cmd.dbFun.BasicFunction Maven / Gradle / Ivy
package db.sql.api.impl.cmd.dbFun;
import db.sql.api.Cmd;
import db.sql.api.SqlBuilderContext;
import db.sql.api.impl.cmd.basic.Field;
import db.sql.api.impl.cmd.struct.query.Select;
import db.sql.api.impl.tookit.SqlConst;
import db.sql.api.tookit.CmdUtils;
public abstract class BasicFunction extends Field> implements Function, FunctionInterface {
protected final String operator;
protected final Cmd key;
public BasicFunction(String operator, Cmd key) {
this.operator = operator;
this.key = key;
}
protected void appendAlias(Cmd module, Cmd user, SqlBuilderContext context, StringBuilder sqlBuilder) {
//拼接 select 的别名
if (module instanceof Select && user instanceof Select) {
if (this.getAlias() != null) {
sqlBuilder.append(SqlConst.AS(context.getDbType()));
sqlBuilder.append(this.getAlias());
}
}
}
@Override
public StringBuilder sql(Cmd module, Cmd parent, SqlBuilderContext context, StringBuilder sqlBuilder) {
sqlBuilder.append(operator).append(SqlConst.BRACKET_LEFT);
this.key.sql(module, this, context, sqlBuilder);
sqlBuilder.append(SqlConst.BRACKET_RIGHT);
appendAlias(module, parent, context, sqlBuilder);
return sqlBuilder;
}
@Override
public boolean contain(Cmd cmd) {
return CmdUtils.contain(cmd, this.key);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy