|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface SqlWriter
A SqlWriter
is the target to construct a SQL statement from a
parse tree. It deals with dialect differences; for example, Oracle quotes
identifiers as "scott"
, while SQL Server quotes them as
[scott]
.
Nested Class Summary | |
---|---|
static interface |
SqlWriter.Frame
A Frame is a piece of generated text which shares a common indentation level. |
static interface |
SqlWriter.FrameType
|
static class |
SqlWriter.FrameTypeEnum
Enumerates the types of frame. |
static class |
SqlWriter.SubqueryStyle
Style of formatting subqueries. |
Method Summary | |
---|---|
void |
endFunCall(SqlWriter.Frame frame)
Ends a list which is a call to a function. |
void |
endList(SqlWriter.Frame frame)
Ends a list. |
SqlDialect |
getDialect()
|
int |
getIndentation()
Returns the offset for each level of indentation. |
void |
identifier(String name)
Prints an identifier, quoting as necessary. |
boolean |
inQuery()
Returns whether we are currently in a query context (SELECT, INSERT, UNION, INTERSECT, EXCEPT, and the ORDER BY operator). |
boolean |
isAlwaysUseParentheses()
Returns whether to enclose all expressions in parentheses, even if the operator has high enough precedence that the parentheses are not required. |
boolean |
isClauseStartsLine()
|
boolean |
isKeywordsLowerCase()
|
boolean |
isQuoteAllIdentifiers()
|
boolean |
isSelectListItemsOnSeparateLines()
|
void |
keyword(String s)
Prints a sequence of keywords. |
void |
literal(String s)
Prints a literal, exactly as provided. |
void |
newlineAndIndent()
Prints a new line, and indents. |
void |
print(int x)
|
void |
print(String s)
Prints a string, preceded by whitespace if necessary. |
void |
reset()
Resets this writer so that it can format another expression. |
void |
resetSettings()
Resets all properties to their default values. |
void |
sep(String sep)
Writes a list separator, unless the separator is "," and this is the first occurrence in the list. |
void |
sep(String sep,
boolean printFirst)
Writes a list separator. |
void |
setNeedWhitespace(boolean needWhitespace)
Sets whether whitespace is needed before the next token. |
SqlWriter.Frame |
startFunCall(String funName)
Starts a list which is a call to a function. |
SqlWriter.Frame |
startList(SqlWriter.FrameTypeEnum frameType)
Starts a list with no opening string. |
SqlWriter.Frame |
startList(SqlWriter.FrameType frameType,
String open,
String close)
Starts a list. |
SqlWriter.Frame |
startList(String open,
String close)
Starts a list. |
Method Detail |
---|
void reset()
resetSettings()
void resetSettings()
SqlDialect getDialect()
void literal(String s)
void keyword(String s)
keyword("SELECT")
,
keyword("CHARACTER SET")
.
void print(String s)
void print(int x)
void identifier(String name)
void newlineAndIndent()
boolean isQuoteAllIdentifiers()
boolean isClauseStartsLine()
boolean isSelectListItemsOnSeparateLines()
boolean isKeywordsLowerCase()
SqlWriter.Frame startFunCall(String funName)
endFunCall(Frame)
void endFunCall(SqlWriter.Frame frame)
frame
- startFunCall(String)
SqlWriter.Frame startList(String open, String close)
SqlWriter.Frame startList(SqlWriter.FrameTypeEnum frameType)
frameType
- Type of list. For example, a SELECT list will beSqlWriter.Frame startList(SqlWriter.FrameType frameType, String open, String close)
frameType
- Type of list. For example, a SELECT list will be
governed according to SELECT-list formatting preferences.open
- String to start the list; typically "(" or the empty string.close
- void endList(SqlWriter.Frame frame)
frame
- The frame which was created by startList(java.lang.String, java.lang.String)
.void sep(String sep)
sep
- List separator, typically ",".void sep(String sep, boolean printFirst)
sep
- List separator, typically ","printFirst
- Whether to print the first occurrence of the separatorvoid setNeedWhitespace(boolean needWhitespace)
int getIndentation()
boolean isAlwaysUseParentheses()
For example, the parentheses are required in the expression (a +
b) * c
because the '*' operator has higher precedence than the '+'
operator, and so without the parentheses, the expression would be
equivalent to a + (b * c)
. The fully-parenthesized
expression, ((a + b) * c)
is unambiguous even if you don't
know the precedence of every operator.
boolean inQuery()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |