org.sqlproc.engine.impl
Class SqlMetaSqlFragment

java.lang.Object
  extended by org.sqlproc.engine.impl.SqlMetaSqlFragment
All Implemented Interfaces:
SqlMetaElement

 class SqlMetaSqlFragment
extends Object
implements SqlMetaElement

A META SQL sub-element.

Schematically:

 SqlMetaSqlFragment 
     {= IDENT SqlMetaIfItem}
 
where IDENT can be

Author:
Vladimir Hudec

Nested Class Summary
(package private) static class SqlMetaSqlFragment.Type
          The enumeration of types.
 
Field Summary
(package private)  List<SqlMetaIfItem> elements
          The list of sub-elements based on ANTLR grammar.
(package private)  org.slf4j.Logger logger
          The internal slf4j logger.
(package private)  boolean optimistic
          The indicator for the types WHERE and SET in the case of optimistic locking.
(package private) static Pattern patternColumns
           
(package private) static Pattern patternSet
           
(package private) static Pattern patternValues
           
(package private) static Pattern patternWhere
           
(package private)  SqlMetaSqlFragment.Type type
          The type if this element.
 
Fields inherited from interface org.sqlproc.engine.impl.SqlMetaElement
AND_PREFIX, CONST_PREFIX, IDENT_PREFIX, IDENT_SEPARATOR, lCONST_PREFIX, lIDENT_PREFIX, OR_PREFIX, SET_PREFIX, VALUES_PREFIX, WHERE_PREFIX
 
Constructor Summary
SqlMetaSqlFragment(SqlMetaSqlFragment.Type type)
          Creates a new instance.
SqlMetaSqlFragment(String type)
          Creates a new instance.
 
Method Summary
(package private)  void addElement(SqlMetaIfItem element)
          Adds a new sub-element.
(package private)  void handleSqlFragment(StringBuilder s, SqlProcessContext ctx)
          Handle the SQL fragment based on the statement type and/or the SqlMetaSqlFragment.Type.
 SqlProcessResult process(SqlProcessContext ctx)
          The main contract for a dynamic ANSI SQL Query generation.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

final org.slf4j.Logger logger
The internal slf4j logger.


patternWhere

static final Pattern patternWhere

patternValues

static final Pattern patternValues

patternSet

static final Pattern patternSet

patternColumns

static final Pattern patternColumns

elements

List<SqlMetaIfItem> elements
The list of sub-elements based on ANTLR grammar.


type

SqlMetaSqlFragment.Type type
The type if this element. It controls, how the related ANSI SQL fragment is added to the final ANSI SQL.


optimistic

boolean optimistic
The indicator for the types WHERE and SET in the case of optimistic locking.

Constructor Detail

SqlMetaSqlFragment

SqlMetaSqlFragment(SqlMetaSqlFragment.Type type)
Creates a new instance. It's used from inside ANTLR parser.

Parameters:
type - the type, which is used to control, how the related ANSI SQL fragment is added to the final ANSI SQL.

SqlMetaSqlFragment

SqlMetaSqlFragment(String type)
Creates a new instance. It's used from inside ANTLR parser.

Parameters:
type - the type, which is used to control, how the related ANSI SQL fragment is added to the final ANSI SQL.
Method Detail

addElement

void addElement(SqlMetaIfItem element)
Adds a new sub-element. It's used from inside ANTLR parser.

Parameters:
element - new sub-element, based on ANTLR grammar

handleSqlFragment

void handleSqlFragment(StringBuilder s,
                       SqlProcessContext ctx)
Handle the SQL fragment based on the statement type and/or the SqlMetaSqlFragment.Type.

Parameters:
s - a buffer for the generated SQL statement
ctx - the crate for all input parameters and the context of processing

process

public SqlProcessResult process(SqlProcessContext ctx)
The main contract for a dynamic ANSI SQL Query generation. Also known as a META SQL processing. The composite pattern main contract. All ANTLR grammar based elements must implement this contract.

Specified by:
process in interface SqlMetaElement
Parameters:
ctx - the crate for all input parameters and the context of processing


Copyright © 2015. All rights reserved.