Package com.exasol.sql.rendering
Class AbstractFragmentRenderer
- java.lang.Object
-
- com.exasol.sql.rendering.AbstractFragmentRenderer
-
- All Implemented Interfaces:
FragmentRenderer
- Direct Known Subclasses:
ColumnsDefinitionRenderer,CreateSchemaRenderer,CreateTableRenderer,DropSchemaRenderer,DropTableRenderer,InsertRenderer,MergeRenderer,SelectRenderer
public abstract class AbstractFragmentRenderer extends Object implements FragmentRenderer
Abstract base class for SQL fragment renderers.
-
-
Field Summary
Fields Modifier and Type Field Description protected StringRendererConfigconfigConfiguration that controls string rendering options.
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractFragmentRenderer(StringRendererConfig config)Create a new instance of anAbstractFragmentRenderer-based class.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidappend(int number)Append on integer number.protected StringBuilderappend(String string)Append a string.protected voidappendAutoQuoted(String identifier)Append an auto-quoted SQL identifier.protected voidappendCommaWhenNeeded(Fragment fragment)Append a comma where necessary.protected voidappendKeyWord(String keyword)Append an unquoted SQL keyword.protected voidappendListOfValueExpressions(List<? extends ValueExpression> valueExpressions)Append a list of value expressions.protected voidappendRenderedValueExpression(ValueExpression expression)Append a value expression that has already been rendered.protected voidappendSpace()Append a white space.protected voidappendValueTableRow(ValueTableRow valueTableRow)Append a row of a value table (SELECT ... FROM VALUES).protected voidendParenthesis()End a parenthesis.Stringrender()Render an SQL statement to a string.protected voidsetLastVisited(Fragment fragment)Set the last statement fragment that was visited.protected voidstartParenthesis()Start a parenthesis.
-
-
-
Field Detail
-
config
protected final StringRendererConfig config
Configuration that controls string rendering options.
-
-
Constructor Detail
-
AbstractFragmentRenderer
protected AbstractFragmentRenderer(StringRendererConfig config)
Create a new instance of anAbstractFragmentRenderer-based class.- Parameters:
config- renderer configuration
-
-
Method Detail
-
appendKeyWord
protected void appendKeyWord(String keyword)
Append an unquoted SQL keyword.- Parameters:
keyword- SQL keyword
-
startParenthesis
protected void startParenthesis()
Start a parenthesis.
-
endParenthesis
protected void endParenthesis()
End a parenthesis.
-
appendRenderedValueExpression
protected void appendRenderedValueExpression(ValueExpression expression)
Append a value expression that has already been rendered.- Parameters:
expression- pre-rendered expression
-
appendListOfValueExpressions
protected void appendListOfValueExpressions(List<? extends ValueExpression> valueExpressions)
Append a list of value expressions.- Parameters:
valueExpressions- value expressions
-
append
protected StringBuilder append(String string)
Append a string.- Parameters:
string- string to append- Returns:
- string builder
-
setLastVisited
protected void setLastVisited(Fragment fragment)
Set the last statement fragment that was visited.- Parameters:
fragment- last visited fragment
-
appendSpace
protected void appendSpace()
Append a white space.
-
appendCommaWhenNeeded
protected void appendCommaWhenNeeded(Fragment fragment)
Append a comma where necessary.- Parameters:
fragment- fragment that might need a comma to separate it from the previous one
-
append
protected void append(int number)
Append on integer number.- Parameters:
number- number to append
-
appendAutoQuoted
protected void appendAutoQuoted(String identifier)
Append an auto-quoted SQL identifier.- Parameters:
identifier- SQL identifier to append
-
appendValueTableRow
protected void appendValueTableRow(ValueTableRow valueTableRow)
Append a row of a value table (SELECT ... FROM VALUES).- Parameters:
valueTableRow- row of a value table
-
render
public String render()
Description copied from interface:FragmentRendererRender an SQL statement to a string.- Specified by:
renderin interfaceFragmentRenderer- Returns:
- rendered string
-
-