|
|||||||||
| 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 be
SqlWriter.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 | ||||||||