package io.dropwizard.jdbi;
import org.skife.jdbi.v2.Binding;
import org.skife.jdbi.v2.StatementContext;
import org.skife.jdbi.v2.tweak.RewrittenStatement;
import org.skife.jdbi.v2.tweak.StatementRewriter;
public class NamePrependingStatementRewriter implements StatementRewriter {
private final StatementRewriter rewriter;
public NamePrependingStatementRewriter(StatementRewriter rewriter) {
this.rewriter = rewriter;
}
@Override
public RewrittenStatement rewrite(String sql, Binding params, StatementContext ctx) {
if ((ctx.getSqlObjectType() != null) && (ctx.getSqlObjectMethod() != null)) {
final StringBuilder query = new StringBuilder(sql.length() + 100);
query.append("/* ");
final String className = ctx.getSqlObjectType().getSimpleName();
if (!className.isEmpty()) {
query.append(className).append('.');
}
query.append(ctx.getSqlObjectMethod().getName());
query.append(" */ ");
query.append(sql);
return rewriter.rewrite(query.toString(), params, ctx);
}
return rewriter.rewrite(sql, params, ctx);
}
}