db.sql.api.impl.cmd.dbFun.Lpad 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.Methods;
import db.sql.api.impl.tookit.SqlConst;
import db.sql.api.tookit.CmdUtils;
public class Lpad extends BasicFunction {
private final int length;
private final Cmd pad;
public Lpad(Cmd key, int length, String pad) {
this(key, length, Methods.cmd(pad));
}
public Lpad(Cmd key, int length, Cmd pad) {
super(SqlConst.LPAD, key);
this.length = length;
this.pad = Methods.cmd(pad);
}
@Override
public StringBuilder functionSql(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.DELIMITER).append(this.length);
sqlBuilder.append(SqlConst.DELIMITER);
this.pad.sql(module, this, context, sqlBuilder);
sqlBuilder.append(SqlConst.BRACKET_RIGHT);
return sqlBuilder;
}
@Override
public boolean contain(Cmd cmd) {
return CmdUtils.contain(cmd, this.key, this.pad);
}
}