Class SqlMetaIdent

java.lang.Object
org.sqlproc.engine.impl.SqlMetaIdent
All Implemented Interfaces:
SqlMetaElement, SqlMetaLogOperand, SqlMetaSimple

class SqlMetaIdent extends Object implements SqlMetaSimple, SqlMetaLogOperand
A META SQL sub-element. It represents a dynamic input value.

Schematically:

 SqlMetaIdent
     +-SqlMetaIdentItem.SqlMetaIdentItem...^SqlMyType^value
 
Author:
Vladimir Hudec
  • Field Details

    • logger

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

      private SqlInputValue.Code caseConversion
      Which conversion should be done on input value.
    • inOutMode

      private SqlInputValue.Mode inOutMode
      Which mode of callable statement parameter it is.
    • not

      private boolean not
      An indicator, which is used to control, how the input value is added to the final ANSI SQL. A standard behavior is to add an input value only in the case it's not empty. The definition of the emptiness depends on the type of the input value.
    • elements

      private List<String> elements
      The list of sub-elements. Every sub-element represents the name of an attribute in the input class (the static parameters class). In case there're more names, the input classes are embedded one in other.
    • sqlType

      private SqlType sqlType
      The type of this input value. It can be Hibernate or an internal type.
    • values

      Map<String,String> values
      Values for a special identifier handling, for example a sequence for an identity.
  • Constructor Details

    • SqlMetaIdent

      SqlMetaIdent(SqlInputValue.Code caseConversion, SqlInputValue.Mode inOutMode)
      Creates a new instance of this entity. Used from inside ANTLR parser.
      Parameters:
      caseConversion - which conversion should be done on inputValue
    • SqlMetaIdent

      SqlMetaIdent(SqlInputValue.Code caseConversion, SqlInputValue.Mode inOutMode, boolean not)
      Creates a new instance of this entity. Used from inside ANTLR parser.
      Parameters:
      caseConversion - which conversion should be done on inputValue
      not - an indicator, which is used to control, how the input value is added to the final ANSI SQL
    • SqlMetaIdent

      SqlMetaIdent(SqlInputValue.Code caseConversion, SqlInputValue.Mode inOutMode, boolean not, SqlType type)
      Creates a new instance of this entity. Used from inside ANTLR parser.
      Parameters:
      caseConversion - which conversion should be done on inputValue
      not - an indicator, which is used to control, how the input value is added to the final ANSI SQL
      type - the type of this input value, which can be Hibernate or an internal type
  • Method Details

    • addIdent

      void addIdent(String name)
      Adds a new name. This is the name of an attribute in the input class (the static parameters class). In case there're more names, the input classes are embedded one in other.
      Parameters:
      name - the next name in the list of names
    • setMetaType

      void setMetaType(String metaTypeName, SqlMetaType metaType)
      Sets the internal type of this input value.
      Parameters:
      metaTypeName - an internal type name
      metaType - an internal type
    • setValues

      public void setValues(String value, String value2)
      Sets the values for a special identifier handling, for example a sequence for an identity. Or it can used be for the special handling of the enumeration type of the input value. The logical evaluation of the input value is based on the comparison to this value.
      Parameters:
      value - the value for a special treatment, might be an identifier of value2 or a value for a comparison
      value2 - the value for a special treatment, might be a sequence name for an identity column
    • getSqlType

      SqlType getSqlType()
      Returns the type of this input value. It can be Hibernate or an internal type.
      Returns:
      the type of this input value
    • setNot

      void setNot(boolean not)
      Sets the indicator, which is used to control, how the input value is added to the final ANSI SQL. A standard behavior is to add an input value only in the case it's not empty. The definition of the emptiness depends on the type of the input value.
      Parameters:
      not - a new indicator value
    • isNot

      boolean isNot()
      Returns the indicator, which is used to control, how the input value is added to the final ANSI SQL. A standard behavior is to add an input value only in the case it's not empty. The definition of the emptiness depends on the type of the input value.
      Returns:
      the indicator value
    • getElements

      public List<String> getElements()
      Returns the list of sub-elements.
      Returns:
      the list of sub-elements
    • 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
    • processExpression

      public boolean processExpression(SqlProcessContext ctx)
      The main contract to evaluate a logical value of META SQL sub-elements.
      Specified by:
      processExpression in interface SqlMetaLogOperand
      Parameters:
      ctx - the context for a dynamic ANSI SQL Query generation
      Returns:
      a logical value