org.sqlproc.engine.impl
Class SqlInputValue

java.lang.Object
  extended by org.sqlproc.engine.impl.SqlInputValue

 class SqlInputValue
extends Object

The entity for a dynamic input value.

Author:
Vladimir Hudec

Nested Class Summary
(package private) static class SqlInputValue.Code
          Enumeration for no/upper/lower case conversion.
(package private) static class SqlInputValue.Mode
          Enumeration for IN/OUT/INOUT mode of callable statement parameter.
(package private) static class SqlInputValue.Type
          Enumeration for the type of input value.
 
Field Summary
private  SqlInputValue.Code caseConversion
          Which conversion should be done on inputValue.
private  SqlProcessContext ctx
          the crate for all input parameters and the context of processing.
private  String dbIdentityName
          A database identity column name
private  String fullInputName
          A input attribute full name.
private  Object identity
          A calculated identity.
private  String identitySelect
          An SQL select for an identity column.
private  SqlInputValue.Mode inOutMode
          Which mode of callable statement parameter it is.
private  String inputName
          A input attribute name.
private  Object inputValue
          A dynamic input value.
(package private)  Class<?> inputValueType
          The input value Java type.
private  String likeChar
          A wildcard character for the SQL command LIKE.
(package private)  org.slf4j.Logger logger
          The internal slf4j logger.
private  int minLikeLength
          The minimum length of inputValue to enable likeChar special treatment.
private  Object outValue
          A dynamic input value can be also an output value.
private  Object parentInputValue
          A parent of a dynamic input value.
private  boolean partialLike
          a wildcard character is going to be only a postfix
private  Map<String,String> replaceChars
          A map of characters to be replaced in input value;
private  String sequence
          A database sequence for an identity column.
private  SqlType type
          The input value META type.
private  SqlInputValue.Type valueType
          The type of the input value, please see SqlInputValue.Type.
 
Constructor Summary
SqlInputValue(SqlProcessContext ctx, SqlInputValue.Type valueType, Object inputValue, Object parentInputValue, Class<?> inputValueType, SqlInputValue.Code caseConversion, SqlInputValue.Mode inOutMode, SqlType type, String inputName, String fullInputName)
          Creates a new instance of this entity.
SqlInputValue(SqlProcessContext ctx, SqlInputValue.Type valueType, Object inputValue, Object parentInputValue, Class<?> inputValueType, String sequenceOrIdentitySelect, SqlType type, String dbIdentityName)
          Creates a new instance of this entity.
SqlInputValue(SqlProcessContext ctx, String name, SqlInputValue sqlInputValue, Object dynamicInputValues)
          Creates a new instance of this entity.
 
Method Summary
 String getDbIdentityName()
          Returns a database identity column name.
(package private)  String getInputName()
          Returns a input attribute name.
(package private)  Object getInputValue()
          Returns a dynamic input value.
(package private)  Object getParentInputValue()
          Returns a parent of a dynamic input value.
 SqlInputValue.Type getValueType()
          Returns the type of the input value, please see SqlInputValue.Type.
private  String processLike(Object val)
          A special treatment of dynamic input value for SQL command LIKE.
private  String processReplaceChars(Object val)
          A special treatment of dynamic input value for SQL command LIKE.
(package private)  void setIdentityResult(String paramName)
          Sets the generated identity value to an input value attribute.
(package private)  void setLike(String likeChar, Integer minLikeLength, boolean partialLike)
          Sets a special treatment of a dynamic input value.
(package private)  void setOutValueResult(String paramName)
          Sets the OUT/INOUT value to an input value attribute.
(package private)  void setQueryParam(SqlSession session, SqlQuery query, String paramName)
          Bind a dynamic input value to a named query parameter.
(package private)  void setReplaceChars(Map<String,String> replaceChars)
          Sets a special treatment of a dynamic input value.
 String toString()
          For debug purposes.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

logger

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


ctx

private SqlProcessContext ctx
the crate for all input parameters and the context of processing.


valueType

private SqlInputValue.Type valueType
The type of the input value, please see SqlInputValue.Type.


caseConversion

private SqlInputValue.Code caseConversion
Which conversion should be done on inputValue.


inOutMode

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


inputValue

private Object inputValue
A dynamic input value.


inputName

private String inputName
A input attribute name.


fullInputName

private String fullInputName
A input attribute full name.


parentInputValue

private Object parentInputValue
A parent of a dynamic input value.


inputValueType

Class<?> inputValueType
The input value Java type.


likeChar

private String likeChar
A wildcard character for the SQL command LIKE. It can be added to inputValue as a prefix and/or as a suffix.


minLikeLength

private int minLikeLength
The minimum length of inputValue to enable likeChar special treatment.


partialLike

private boolean partialLike
a wildcard character is going to be only a postfix


type

private SqlType type
The input value META type.


sequence

private String sequence
A database sequence for an identity column.


identitySelect

private String identitySelect
An SQL select for an identity column.


identity

private Object identity
A calculated identity.


outValue

private Object outValue
A dynamic input value can be also an output value.


replaceChars

private Map<String,String> replaceChars
A map of characters to be replaced in input value;


dbIdentityName

private String dbIdentityName
A database identity column name

Constructor Detail

SqlInputValue

SqlInputValue(SqlProcessContext ctx,
              SqlInputValue.Type valueType,
              Object inputValue,
              Object parentInputValue,
              Class<?> inputValueType,
              SqlInputValue.Code caseConversion,
              SqlInputValue.Mode inOutMode,
              SqlType type,
              String inputName,
              String fullInputName)
Creates a new instance of this entity. Used from inside ANTLR parser.

Parameters:
ctx - the crate for all input parameters and the context of processing
valueType - a value type
inputValue - a dynamic input value
inputValueType - a dynamic input value Java type
caseConversion - which conversion should be done on inputValue
inOutMode - Which mode of callable statement parameter it is
type - a dynamic input value META type

SqlInputValue

SqlInputValue(SqlProcessContext ctx,
              SqlInputValue.Type valueType,
              Object inputValue,
              Object parentInputValue,
              Class<?> inputValueType,
              String sequenceOrIdentitySelect,
              SqlType type,
              String dbIdentityName)
Creates a new instance of this entity. Used from inside ANTLR parser.

Parameters:
ctx - the crate for all input parameters and the context of processing
valueType - a value type
inputValue - a dynamic input value
inputValueType - a dynamic input value Java type
sequenceOrIdentitySelect - a sequence or select command used to generate an identity value
type - a dynamic input value META type

SqlInputValue

SqlInputValue(SqlProcessContext ctx,
              String name,
              SqlInputValue sqlInputValue,
              Object dynamicInputValues)
Creates a new instance of this entity.

Parameters:
ctx - the crate for all input parameters and the context of processing
name - the name og the attribute
sqlInputValue - SqlInputValue instance to clone
dynamicInputValues - the SQL statement dynamic parameters (input values)
Method Detail

setQueryParam

void setQueryParam(SqlSession session,
                   SqlQuery query,
                   String paramName)
             throws SqlRuntimeException
Bind a dynamic input value to a named query parameter.

Parameters:
session - the SQL Engine session, an adapter or proxy to the internal JDBC or ORM staff
query - the SQL Engine query, an adapter or proxy to the internal JDBC or ORM staff
paramName - the name of the parameter (= the attribute name)
Throws:
SqlRuntimeException - in the case of any problem with input values handling

setIdentityResult

void setIdentityResult(String paramName)
                 throws SqlRuntimeException
Sets the generated identity value to an input value attribute.

Parameters:
paramName - the name of the parameter (= the attribute name)
Throws:
SqlRuntimeException - in the case of any problem with output values handling

setOutValueResult

void setOutValueResult(String paramName)
                 throws SqlRuntimeException
Sets the OUT/INOUT value to an input value attribute.

Parameters:
paramName - the name of the parameter (= the attribute name)
Throws:
SqlRuntimeException - in the case of any problem with output values handling

setLike

void setLike(String likeChar,
             Integer minLikeLength,
             boolean partialLike)
Sets a special treatment of a dynamic input value.

Parameters:
likeChar - a wildcard character
minLikeLength - the minimum length of inputValue to enable likeChar special treatment
partialLike - a wildcard character is going to be only a postfix

setReplaceChars

void setReplaceChars(Map<String,String> replaceChars)
Sets a special treatment of a dynamic input value.

Parameters:
replaceChars - a map of characters to be replaced in input value

processLike

private String processLike(Object val)
A special treatment of dynamic input value for SQL command LIKE.

Parameters:
val - a dynamic input value
Returns:
a dynamic input value with a likeChar as a prefix and/or suffix

processReplaceChars

private String processReplaceChars(Object val)
A special treatment of dynamic input value for SQL command LIKE.

Parameters:
val - a dynamic input value
Returns:
a dynamic input value with replaced characters

getInputValue

Object getInputValue()
Returns a dynamic input value.

Returns:
a dynamic input value

getInputName

String getInputName()
Returns a input attribute name.

Returns:
a input attribute name

getParentInputValue

Object getParentInputValue()
Returns a parent of a dynamic input value.

Returns:
a parent of a dynamic input value

getValueType

public SqlInputValue.Type getValueType()
Returns the type of the input value, please see SqlInputValue.Type.

Returns:
the type of the input value, please see SqlInputValue.Type

getDbIdentityName

public String getDbIdentityName()
Returns a database identity column name.

Returns:
a database identity column name

toString

public String toString()
For debug purposes.

Overrides:
toString in class Object
Returns:
a String representation for a debug output


Copyright © 2015. All rights reserved.