package gov.nysenate.openleg.dao.base;
public interface SearchSqlQuery
{
/**
* Return the sql query as is.
*/
public String getSql();
/**
* Retrieve a formatted sql String with the dataSchema and searchSchema values
* replaced where applicable. This is needed for allowing configurable schema names.
*/
public default String getSql(String dataSchema, String searchSchema) {
return SqlQueryUtils.getSqlWithSchema(getSql(), dataSchema, searchSchema);
}
/**
* Overload of getSql(dataSchema, searchSchema). Returns a sql string with a limit clause
* appended to the end according to the supplied LimitOffset instance.
*/
public default String getSql(String dataSchema, String searchSchema, LimitOffset limitOffset) {
return SqlQueryUtils.getSqlWithSchema(getSql(), dataSchema, searchSchema, limitOffset);
}
/**
* Overload of getSql(dataSchema, searchSchema, limitOffset). Returns a sql string with an
* order by clause set according to the supplied OrderBy instance.
*/
public default String getSql(String dataSchema, String searchSchema, OrderBy orderBy, LimitOffset limitOffset) {
return SqlQueryUtils.getSqlWithSchema(getSql(), dataSchema, searchSchema, orderBy, limitOffset);
}
}