Class SqlMetaSqlFragment

java.lang.Object
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
  • where for WHERE fragment of the final SQL query/statement
  • set for WHERE fragment of the final SQL update statement
  • values for WHERE fragment of the final SQL insert statement
Author:
Vladimir Hudec
  • Field Details

    • 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

      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 Details

    • 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 Details

    • 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