public class BasicSqlHandler extends Object implements SqlHandler
| Constructor and Description |
|---|
BasicSqlHandler()
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
appendCompositeConstraintToSql(StringBuilder sb,
CompositeConstraint compositeConstraint,
SearchQuery query,
boolean inverse,
boolean inComposite,
SqlHandler firstInChain)
Represents a CompositeConstraint object as a constraint in SQL format,
appending the result to a stringbuffer.
|
void |
appendConstraintToSql(StringBuilder sb,
Constraint constraint,
SearchQuery query,
boolean inverse,
boolean inComposite)
Represents Constraint object, that is not a CompositeConstraint,
as a constraint in SQL format, appending the result to a stringbuffer.
|
protected void |
appendDateField(StringBuilder sb,
Step step,
String fieldName,
boolean multipleSteps,
int datePart) |
protected void |
appendDateValue(StringBuilder sb,
Date value) |
protected void |
appendField(StringBuilder sb,
SortOrder sortOrder,
boolean includeTablePrefix)
Creates an identifier for a field absed on adate from a sortorder, and appends it to a stringbuffer.
|
protected void |
appendField(StringBuilder sb,
StepField field,
boolean includeTablePrefix) |
protected void |
appendField(StringBuilder sb,
Step step,
String fieldName,
boolean includeTablePrefix)
Creates an identifier for a field, and appends it to a stringbuffer.
|
void |
appendFieldValue(StringBuilder sb,
Object value,
boolean toLowerCase,
int fieldType)
Represents field value as a string, appending the result to a
stringbuilder
|
protected StringBuilder |
appendLikeOperator(StringBuilder sb,
FieldConstraint fieldConstraint)
Appends the 'LIKE' operator for the given case sensitiviy.
|
protected void |
appendLowerField(StringBuilder sb,
Step step,
String fieldName,
boolean includeTablePrefix) |
protected String |
appendPreField(StringBuilder sb,
FieldConstraint constraint,
StepField field,
boolean multiple) |
void |
appendQueryBodyToSql(StringBuilder sb,
SearchQuery query,
SqlHandler firstInChain)
Represents body of a SearchQuery object as a string in SQL format,
using the database configuration.
|
protected StringBuilder |
appendRegularExpressionOperator(StringBuilder sb,
FieldConstraint fieldConstraint) |
protected void |
appendRelationConstraints(StringBuilder sbRelations,
RelationStep relationStep,
boolean multipleSteps) |
protected StringBuilder |
appendSortOrderDirection(StringBuilder sb,
SortOrder sortOrder) |
protected StringBuilder |
appendSortOrderField(StringBuilder sb,
SortOrder sortOrder,
boolean multipleSteps) |
protected StringBuilder |
appendSortOrderField(StringBuilder sb,
SortOrder sortOrder,
boolean multipleSteps,
SearchQuery query) |
protected StringBuilder |
appendSortOrders(StringBuilder sb,
SearchQuery query) |
protected void |
appendTableAlias(StringBuilder sb,
Step step) |
protected void |
appendTableName(StringBuilder sb,
Step step) |
String |
forceEncode(String st) |
String |
getAllowedValue(String value)
Maps string to value that is allowed as table or field name.
|
int |
getSupportLevel(Constraint constraint,
SearchQuery query)
Gets the level at which a constraint is supported for a query
by this handler.
|
int |
getSupportLevel(int feature,
SearchQuery query)
Gets the level at which a feature is supported for a query
by this handler.
|
String |
toSql(SearchQuery query,
SqlHandler firstInChain)
Represents a SearchQuery object as a string in SQL format,
using the database configuration.
|
protected String |
toSqlString(String str)
Utility method, modifies strings for use in SQL statements.
|
protected boolean |
useLower(FieldConstraint constraint)
Wether the 'LOWER' function needs to be used to implement case insensitivity.
|
protected String toSqlString(String str)
str - The input string.protected boolean useLower(FieldConstraint constraint)
protected void appendDateValue(StringBuilder sb, Date value)
public void appendFieldValue(StringBuilder sb, Object value, boolean toLowerCase, int fieldType)
Depending on the fieldType:
sb - The stringbuffer to append to.value - The field value.toLowerCase - True when String must be converted to
lower case.fieldType - The field type.public String toSql(SearchQuery query, SqlHandler firstInChain) throws SearchQueryException
SqlHandlertoSql in interface SqlHandlerquery - The searchquery.firstInChain - The first element in the chain of handlers.
At some point appendQueryBodyToSql() will have
to be called on this handler, to generate the body of the query.SearchQueryExceptionprotected void appendRelationConstraints(StringBuilder sbRelations, RelationStep relationStep, boolean multipleSteps)
public void appendQueryBodyToSql(StringBuilder sb, SearchQuery query, SqlHandler firstInChain) throws SearchQueryException
SqlHandlerappendQueryBodyToSql in interface SqlHandlersb - The stringbuffer to append to.query - The searchquery.firstInChain - The first element in the chain of handlers.
At some point appendConstraintToSql() will have
to be called on this handler, to generate the constraints in
the query.SearchQueryExceptionprotected void appendTableName(StringBuilder sb, Step step)
sb - step - protected void appendTableAlias(StringBuilder sb, Step step)
protected StringBuilder appendSortOrderDirection(StringBuilder sb, SortOrder sortOrder) throws IllegalStateException
IllegalStateExceptionprotected StringBuilder appendSortOrderField(StringBuilder sb, SortOrder sortOrder, boolean multipleSteps)
protected StringBuilder appendSortOrderField(StringBuilder sb, SortOrder sortOrder, boolean multipleSteps, SearchQuery query)
protected StringBuilder appendSortOrders(StringBuilder sb, SearchQuery query)
protected StringBuilder appendLikeOperator(StringBuilder sb, FieldConstraint fieldConstraint)
protected StringBuilder appendRegularExpressionOperator(StringBuilder sb, FieldConstraint fieldConstraint)
protected void appendDateField(StringBuilder sb, Step step, String fieldName, boolean multipleSteps, int datePart)
protected String appendPreField(StringBuilder sb, FieldConstraint constraint, StepField field, boolean multiple)
public void appendConstraintToSql(StringBuilder sb, Constraint constraint, SearchQuery query, boolean inverse, boolean inComposite) throws SearchQueryException
SqlHandlerappendConstraintToSql in interface SqlHandlersb - The stringbuffer to append to.constraint - The (non-composite) constraint.query - The searchquery containing the constraint.inverse - True when the inverse constraint must be represented,
false otherwise.inComposite - True when the constraint is part of
a composite expression.SearchQueryExceptionpublic int getSupportLevel(int feature,
SearchQuery query)
throws SearchQueryException
SqlHandlergetSupportLevel in interface SqlHandlerSearchQueryExceptionpublic int getSupportLevel(Constraint constraint, SearchQuery query) throws SearchQueryException
SqlHandlergetSupportLevel in interface SqlHandlerSearchQueryExceptionpublic String getAllowedValue(String value)
SqlHandlergetAllowedValue in interface SqlHandlervalue - The string value.protected void appendCompositeConstraintToSql(StringBuilder sb, CompositeConstraint compositeConstraint, SearchQuery query, boolean inverse, boolean inComposite, SqlHandler firstInChain) throws SearchQueryException
sb - The stringbuffer to append to.compositeConstraint - The composite constraint.query - The searchquery containing the constraint.inverse - True when the inverse constraint must be represented,
false otherwise.inComposite - True when the constraint is part of
a composite expression.firstInChain - The first element in the chain of handlers.
At some point appendConstraintToSql() will have
to be called on this handler, to generate the constraints in
the composite.SearchQueryExceptionprotected void appendField(StringBuilder sb, SortOrder sortOrder, boolean includeTablePrefix)
sb - The stringbuffer to append to.sortOrder - The sortOrder object containing the field data.includeTablePrefix - true when the fieldname must be
prefixed with the tablename or tablealias (e.g. like in "images.number"),
false otherwise.protected void appendField(StringBuilder sb, StepField field, boolean includeTablePrefix)
protected void appendField(StringBuilder sb, Step step, String fieldName, boolean includeTablePrefix)
sb - The stringbuffer to append to.step - The Step the field belongs to.fieldName - The fields fieldname.includeTablePrefix - true when the fieldname must be
prefixed with the tablename or tablealias (e.g. like in "images.number"),
false otherwise.protected void appendLowerField(StringBuilder sb, Step step, String fieldName, boolean includeTablePrefix)
MMBase 1.9-SNAPSHOT - ${javadoctimestamp}