Package tilda.grammar
Class WhereClauseCodeGenTildaQL
- java.lang.Object
-
- tilda.grammar.WhereClauseCodeGenTildaQL
-
- All Implemented Interfaces:
WhereClauseCodeGen
public class WhereClauseCodeGenTildaQL extends java.lang.Object implements WhereClauseCodeGen
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.StringBuilder
_CodeGen
protected static org.apache.logging.log4j.Logger
LOG
protected static java.lang.String
TYPE_MARKER
-
Constructor Summary
Constructors Constructor Description WhereClauseCodeGenTildaQL()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
arithmeticClosePar()
void
arithmeticMultiply(boolean division)
void
arithmeticOpenPar()
void
arithmeticPlus(boolean minus)
java.lang.String
binClose()
void
binEqual(java.util.List<ColumnDefinition> Columns, ColumnType Type, boolean not)
void
binGreaterThan(java.util.List<ColumnDefinition> Columns, ColumnType Type)
void
binGreaterThanOrEqual(java.util.List<ColumnDefinition> Columns, ColumnType Type)
void
binIn(java.util.List<ColumnDefinition> Columns, boolean not)
void
binLessThan(java.util.List<ColumnDefinition> Columns, ColumnType Type)
void
binLessThanOrEqual(java.util.List<ColumnDefinition> Columns, ColumnType Type)
void
binLike(java.util.List<ColumnDefinition> Columns, boolean not)
void
boolClosePar()
void
boolOpenPar()
void
boolOperatorAND(boolean not)
void
boolOperatorOR(boolean not)
void
col(ColumnDefinition Column)
void
end()
void
funcLen(java.util.List<ColumnDefinition> Columns)
Must be called with a single 'collection' Column, or a list of Columns where ALL are single Strings and will be concatenated together and checked for length.
Implementers of this interface are NOT expected to do this validation!java.lang.String
getCodeStr()
void
isNull(ColumnDefinition Col, boolean not, boolean orEmpty)
Must be called with a nullable column (where a null test makes sense).protected static void
makeColumn(java.lang.StringBuilder Str, ColumnDefinition Col)
protected static void
makeColumnList(java.lang.StringBuilder Str, java.util.List<ColumnDefinition> Cols)
java.lang.String
valueListClose(ColumnType Type)
void
valueListOpen()
void
valueListSeparator()
void
valueLiteralChar(char c)
void
valueLiteralNumeric(java.lang.String Number)
void
valueLiteralString(java.lang.String Str)
void
valueLiteralTimestamp(java.time.ZonedDateTime ZDT)
void
valueParameter(java.lang.String Str)
void
valueTimestampCurrent()
void
valueTimestampToday(boolean first)
void
valueTimestampTomorrow(boolean first)
void
valueTimestampYesterday(boolean first)
-
-
-
Field Detail
-
LOG
protected static final org.apache.logging.log4j.Logger LOG
-
_CodeGen
protected java.lang.StringBuilder _CodeGen
-
TYPE_MARKER
protected static final java.lang.String TYPE_MARKER
- See Also:
- Constant Field Values
-
-
Method Detail
-
getCodeStr
public java.lang.String getCodeStr()
- Specified by:
getCodeStr
in interfaceWhereClauseCodeGen
-
boolOperatorAND
public void boolOperatorAND(boolean not)
- Specified by:
boolOperatorAND
in interfaceWhereClauseCodeGen
-
boolOperatorOR
public void boolOperatorOR(boolean not)
- Specified by:
boolOperatorOR
in interfaceWhereClauseCodeGen
-
boolOpenPar
public void boolOpenPar()
- Specified by:
boolOpenPar
in interfaceWhereClauseCodeGen
-
boolClosePar
public void boolClosePar()
- Specified by:
boolClosePar
in interfaceWhereClauseCodeGen
-
makeColumn
protected static void makeColumn(java.lang.StringBuilder Str, ColumnDefinition Col)
-
makeColumnList
protected static void makeColumnList(java.lang.StringBuilder Str, java.util.List<ColumnDefinition> Cols)
-
binLike
public void binLike(java.util.List<ColumnDefinition> Columns, boolean not)
- Specified by:
binLike
in interfaceWhereClauseCodeGen
-
binEqual
public void binEqual(java.util.List<ColumnDefinition> Columns, ColumnType Type, boolean not)
- Specified by:
binEqual
in interfaceWhereClauseCodeGen
-
binLessThan
public void binLessThan(java.util.List<ColumnDefinition> Columns, ColumnType Type)
- Specified by:
binLessThan
in interfaceWhereClauseCodeGen
-
binLessThanOrEqual
public void binLessThanOrEqual(java.util.List<ColumnDefinition> Columns, ColumnType Type)
- Specified by:
binLessThanOrEqual
in interfaceWhereClauseCodeGen
-
binGreaterThan
public void binGreaterThan(java.util.List<ColumnDefinition> Columns, ColumnType Type)
- Specified by:
binGreaterThan
in interfaceWhereClauseCodeGen
-
binGreaterThanOrEqual
public void binGreaterThanOrEqual(java.util.List<ColumnDefinition> Columns, ColumnType Type)
- Specified by:
binGreaterThanOrEqual
in interfaceWhereClauseCodeGen
-
binIn
public void binIn(java.util.List<ColumnDefinition> Columns, boolean not)
- Specified by:
binIn
in interfaceWhereClauseCodeGen
-
col
public void col(ColumnDefinition Column)
- Specified by:
col
in interfaceWhereClauseCodeGen
-
funcLen
public void funcLen(java.util.List<ColumnDefinition> Columns)
Description copied from interface:WhereClauseCodeGen
Must be called with a single 'collection' Column, or a list of Columns where ALL are single Strings and will be concatenated together and checked for length.
Implementers of this interface are NOT expected to do this validation!- Specified by:
funcLen
in interfaceWhereClauseCodeGen
- Parameters:
Columns
- a list of column definitions
-
binClose
public java.lang.String binClose()
- Specified by:
binClose
in interfaceWhereClauseCodeGen
-
valueListOpen
public void valueListOpen()
- Specified by:
valueListOpen
in interfaceWhereClauseCodeGen
-
valueListSeparator
public void valueListSeparator()
- Specified by:
valueListSeparator
in interfaceWhereClauseCodeGen
-
valueLiteralNumeric
public void valueLiteralNumeric(java.lang.String Number)
- Specified by:
valueLiteralNumeric
in interfaceWhereClauseCodeGen
-
valueLiteralString
public void valueLiteralString(java.lang.String Str)
- Specified by:
valueLiteralString
in interfaceWhereClauseCodeGen
-
valueLiteralChar
public void valueLiteralChar(char c)
- Specified by:
valueLiteralChar
in interfaceWhereClauseCodeGen
-
valueParameter
public void valueParameter(java.lang.String Str)
- Specified by:
valueParameter
in interfaceWhereClauseCodeGen
-
valueLiteralTimestamp
public void valueLiteralTimestamp(java.time.ZonedDateTime ZDT)
- Specified by:
valueLiteralTimestamp
in interfaceWhereClauseCodeGen
-
valueTimestampCurrent
public void valueTimestampCurrent()
- Specified by:
valueTimestampCurrent
in interfaceWhereClauseCodeGen
-
valueTimestampYesterday
public void valueTimestampYesterday(boolean first)
- Specified by:
valueTimestampYesterday
in interfaceWhereClauseCodeGen
-
valueTimestampToday
public void valueTimestampToday(boolean first)
- Specified by:
valueTimestampToday
in interfaceWhereClauseCodeGen
-
valueTimestampTomorrow
public void valueTimestampTomorrow(boolean first)
- Specified by:
valueTimestampTomorrow
in interfaceWhereClauseCodeGen
-
valueListClose
public java.lang.String valueListClose(ColumnType Type)
- Specified by:
valueListClose
in interfaceWhereClauseCodeGen
-
arithmeticOpenPar
public void arithmeticOpenPar()
- Specified by:
arithmeticOpenPar
in interfaceWhereClauseCodeGen
-
arithmeticClosePar
public void arithmeticClosePar()
- Specified by:
arithmeticClosePar
in interfaceWhereClauseCodeGen
-
arithmeticPlus
public void arithmeticPlus(boolean minus)
- Specified by:
arithmeticPlus
in interfaceWhereClauseCodeGen
-
arithmeticMultiply
public void arithmeticMultiply(boolean division)
- Specified by:
arithmeticMultiply
in interfaceWhereClauseCodeGen
-
end
public void end()
- Specified by:
end
in interfaceWhereClauseCodeGen
-
isNull
public void isNull(ColumnDefinition Col, boolean not, boolean orEmpty)
Description copied from interface:WhereClauseCodeGen
Must be called with a nullable column (where a null test makes sense). If orEmpty is true then the column MUST be a collection or a String.
Implementers of this interface are NOT expected to do this validation!- Specified by:
isNull
in interfaceWhereClauseCodeGen
- Parameters:
Col
- A Column definitionnot
- Whether this is a "is null" or "is not null"orEmpty
- Whether a check for 'emptiness' should be performed as well, which means a length of 0 for collections, and val.trim().length() == 0 for Strings.
-
-