org.sqlproc.engine.impl
Class SqlMetaConst

java.lang.Object
  extended by org.sqlproc.engine.impl.SqlMetaConst
All Implemented Interfaces:
SqlMetaElement, SqlMetaLogOperand, SqlMetaSimple
Direct Known Subclasses:
SqlMetaOperator

 class SqlMetaConst
extends Object
implements SqlMetaSimple, SqlMetaLogOperand

A META SQL sub-element. It represents a static input value.

Schematically:

 SqlMetaConst
     +-SqlMetaConstItem.SqlMetaConstItem...^SqlMyType^value
 

Author:
Vladimir Hudec

Field Summary
private  SqlInputValue.Code caseConversion
          Which conversion should be done on input value.
private  List<String> elements
          The list of sub-elements.
(package private)  org.slf4j.Logger logger
          The internal slf4j logger.
private  boolean not
          An indicator, which is used to control, how the input value is added to the final ANSI SQL.
private  SqlType sqlType
          The type of this input value.
(package private)  Map<String,String> values
          Values for a special identifier handling, for example a sequence for an identity.
 
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
SqlMetaConst(SqlInputValue.Code caseConversion)
          Creates a new instance of this entity.
SqlMetaConst(SqlInputValue.Code caseConversion, boolean not)
          Creates a new instance of this entity.
SqlMetaConst(SqlInputValue.Code caseConversion, boolean not, SqlType type)
          Creates a new instance of this entity.
 
Method Summary
(package private)  void addConst(String name)
          Adds a new name.
(package private)  String getData(Object obj)
          Returns a String representation of input values, after a possible transformation process.
(package private)  String getDefaultData()
          Returns a default input value in the case the input attribute is null.
 List<String> getElements()
          Returns the list of sub-elements
(package private)  Class<?> getFieldType(SqlProcessContext ctx, Class<?> attributeType, String attributeName)
          Returns the static input attribute type.
(package private)  Object getInputValues(SqlProcessContext ctx)
          Returns the static or dynamic input values.
(package private)  Object getProperty(SqlProcessContext ctx, Object obj, String item)
          Returns the static input attribute value.
(package private)  SqlType getSqlType()
          Returns the type of this input value.
(package private)  boolean isNot()
          Returns the indicator, which is used to control, how the input value is added to the final ANSI SQL.
 SqlProcessResult process(SqlProcessContext ctx)
          The main contract for a dynamic ANSI SQL Query generation.
 boolean processExpression(SqlProcessContext ctx)
          The main contract to evaluate a logical value of META SQL sub-elements.
 void setElements(List<String> elements)
          Sets the list of sub-elements.
(package private)  void setMetaType(SqlMetaType metaType)
          Sets the internal type of this input value.
(package private)  void setNot(boolean not)
          Sets the indicator, which is used to control, how the input value is added to the final ANSI SQL.
 void setValues(String value, String value2)
          Sets the values.
 
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.


caseConversion

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


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 Detail

SqlMetaConst

SqlMetaConst(SqlInputValue.Code caseConversion)
Creates a new instance of this entity. Used from inside ANTLR parser.

Parameters:
caseConversion - which conversion should be done on inputValue

SqlMetaConst

SqlMetaConst(SqlInputValue.Code caseConversion,
             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

SqlMetaConst

SqlMetaConst(SqlInputValue.Code caseConversion,
             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 Detail

addConst

void addConst(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(SqlMetaType metaType)
Sets the internal type of this input value.

Parameters:
metaType - an internal type

setValues

public void setValues(String value,
                      String value2)
Sets the values. Right now only for the special 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 special treatment, might be an identifier of value2
value2 - the value for special treatment

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

setElements

public void setElements(List<String> elements)
Sets the list of sub-elements.

Parameters:
elements - 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

getData

String getData(Object obj)
Returns a String representation of input values, after a possible transformation process.

Parameters:
obj - a raw input value
Returns:
the transformed input value

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

getInputValues

Object getInputValues(SqlProcessContext ctx)
Returns the static or dynamic input values. The standard input values are the static ones.

Parameters:
ctx - the crate for all input parameters and the context of processing
Returns:
the static or dynamic input values

getDefaultData

String getDefaultData()
Returns a default input value in the case the input attribute is null.

Returns:
a default input value

getFieldType

Class<?> getFieldType(SqlProcessContext ctx,
                      Class<?> attributeType,
                      String attributeName)
Returns the static input attribute type.

Parameters:
ctx - the crate for all input parameters and the context of processing
attributeType - parents type
attributeName - the attribute name
Returns:
the static input attribute type

getProperty

Object getProperty(SqlProcessContext ctx,
                   Object obj,
                   String item)
Returns the static input attribute value.

Parameters:
ctx - the crate for all input parameters and the context of processing
obj - the static input value POJO
item - the attribute name
Returns:
the static input attribute value


Copyright © 2013. All Rights Reserved.