org.sqlproc.engine.impl
Class SqlProcessContext

java.lang.Object
  extended by org.sqlproc.engine.impl.SqlProcessContext
All Implemented Interfaces:
SqlRuntimeContext

public class SqlProcessContext
extends Object
implements SqlRuntimeContext

The crate (design pattern) for all input parameters for the SqlMetaStatement.process(org.sqlproc.engine.impl.SqlMetaStatement.Type, Object, SqlControl, SqlEngine) Also can work as a context for a dynamic ANSI SQL query generation. This processing is based on the contract SqlMetaElement.process(SqlProcessContext).

Author:
Vladimir Hudec

Field Summary
(package private)  Object dynamicInputValues
          The SQL statement dynamic parameters.
(package private)  boolean inSqlSetOrInsert
          An indicator, that the processing is inside of the special SQL fragment - SET or VALUES.
(package private)  Set<String> oppositeNames
          Unset features in the runtime.
(package private)  SqlControl sqlControl
          The compound parameters controlling the META SQL execution.
(package private)  SqlEngine sqlEngine
          The primary SQL Processor class for the META SQL execution.
(package private)  SqlMetaStatement.Type sqlStatementType
          The SQL command type.
 
Constructor Summary
SqlProcessContext(SqlMetaStatement.Type sqlStatementType, Object dynamicInputValues, SqlControl sqlControl, SqlEngine sqlEngine)
          Creates a new instance.
SqlProcessContext(SqlProcessContext ctx, Object dynamicInputValues, SqlControl sqlControl)
          Creates a new instance.
 
Method Summary
 boolean checkAttribute(Object bean, String attrName)
          Checks the attribute getter method existence.
 boolean checkMethod(Class<?> clazz, String methodName, Class<?>... args)
          Checks the class method existence.
 boolean checkMethod(Object bean, String methodName, Object... args)
          Checks the bean method existence.
 Object getAttribute(Object bean, String attrName)
          Returns the value of the specified simple attribute of the specified bean.
 Class<?> getAttributeType(Class<?> clazz, String attrName)
          Returns the Java type info for the attribute, if there is one.
 Object getDynamicInputValues()
          Returns the SQL statement dynamic parameters.
 Class<?> getEnumToClass(Class<?> clazz)
          Returns the bean enumeration type.
 Object getEnumToValue(Object bean)
          Returns the bean enumeration value.
 String getFeature(SqlFeature feature)
          Convenient method to obtain a String feature based on the name.
 String getFeature(SqlFeature feature, String specName)
          Convenient method to obtain a String feature based on the name.
 String getFeature(String name)
          Convenient method to obtain a String feature based on the name.
 Integer getFeatureAsInt(SqlFeature feature)
          Convenient method to obtain an Integer feature based on the name.
 Object getFeatureAsObject(SqlFeature feature)
          Convenient method to obtain an Object feature based on the name.
 String[] getFeatures(String name)
          Convenient method to obtain a String array features based on the name.
 BeanUtilsPlugin.GetterType getGetterType(Class<?> clazz, String attrName)
          Returns the attribute getter method types, if there is one.
 BeanUtilsPlugin.GetterType getGetterType(Object bean, String attrName)
          Returns the attribute getter method types, if there is one.
 Object getInstance(Class<?> clazz)
          Returns the new class instance
(package private)  List<SqlOrder> getOrder()
          Returns the list of ordering directives.
(package private)  SqlOrder.Order getOrder(int orderIndex)
          Convenient method to obtain the ordering directive based on the index.
(package private)  int getOrderIndex(int orderId)
          Convenient method to obtain the index of the ordering directive.
 SqlPluginFactory getPluginFactory()
          Returns the factory responsible for the SQL Processor plugins.
protected  Object getRawFeature(SqlFeature feature)
          Convenient method to obtain a feature based on the name.
protected  Object getRawFeature(String name)
          Convenient method to obtain a feature based on the name.
(package private)  SqlMetaStatement.Type getSqlStatementType()
          Returns the SQL command type.
 Object getStaticInputValues()
          Returns the SQL statement static parameters.
 SqlTypeFactory getTypeFactory()
          Returns the factory responsible for the META types construction.
 Object getValueToEnum(Class<?> objClass, Object val)
          Returns the enumeration instance for the enumeration value
private  void initFeatures()
          Initialize the optional features.
 Object invokeMethod(Class<?> clazz, String methodName, Object... args)
          Invokes the class method with the specified name and parameters.
 Object invokeMethod(Object bean, String methodName, Object... args)
          Invokes the bean method with the specified name and parameters.
 boolean isFeature(SqlFeature feature)
          Convenient method to obtain a boolean feature based on the name.
 void setAttribute(Object bean, String attrName, Object attrValue)
          Sets the value of the specified simple attribute of the specified bean.
 boolean simpleSetAttribute(Object bean, String attrName, Object attrValue, Class<?>... attrTypes)
          Sets the value of the specified simple attribute of the specified bean, if there is one.
 String toString()
          For debug purposes.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

sqlStatementType

SqlMetaStatement.Type sqlStatementType
The SQL command type.


dynamicInputValues

Object dynamicInputValues
The SQL statement dynamic parameters.


sqlControl

SqlControl sqlControl
The compound parameters controlling the META SQL execution.


sqlEngine

SqlEngine sqlEngine
The primary SQL Processor class for the META SQL execution.


inSqlSetOrInsert

boolean inSqlSetOrInsert
An indicator, that the processing is inside of the special SQL fragment - SET or VALUES.


oppositeNames

Set<String> oppositeNames
Unset features in the runtime.

Constructor Detail

SqlProcessContext

SqlProcessContext(SqlMetaStatement.Type sqlStatementType,
                  Object dynamicInputValues,
                  SqlControl sqlControl,
                  SqlEngine sqlEngine)
Creates a new instance.

Parameters:
sqlStatementType - the type of the SQL command
dynamicInputValues - the dynamic input parameters
sqlControl - the compound parameters controlling the META SQL execution
sqlEngine - the primary SQL Processor class for the META SQL execution

SqlProcessContext

SqlProcessContext(SqlProcessContext ctx,
                  Object dynamicInputValues,
                  SqlControl sqlControl)
Creates a new instance.

Parameters:
ctx - the crate for all input parameters and the context of processing
dynamicInputValues - the dynamic input parameters
sqlControl - the compound parameters controlling the META SQL execution
Method Detail

initFeatures

private void initFeatures()
Initialize the optional features.


getSqlStatementType

SqlMetaStatement.Type getSqlStatementType()
Returns the SQL command type.

Returns:
the SQL command type

getDynamicInputValues

public Object getDynamicInputValues()
Returns the SQL statement dynamic parameters.

Returns:
the SQL statement dynamic parameters

getStaticInputValues

public Object getStaticInputValues()
Returns the SQL statement static parameters.

Returns:
the SQL statement static parameters

getFeature

public String getFeature(String name)
Convenient method to obtain a String feature based on the name.

Specified by:
getFeature in interface SqlRuntimeContext
Parameters:
name - name of the feature
Returns:
value of the feature

getFeature

public String getFeature(SqlFeature feature)
Convenient method to obtain a String feature based on the name.

Specified by:
getFeature in interface SqlRuntimeContext
Parameters:
feature - the feature
Returns:
value of the feature

getFeature

public String getFeature(SqlFeature feature,
                         String specName)
Convenient method to obtain a String feature based on the name.

Specified by:
getFeature in interface SqlRuntimeContext
Parameters:
feature - the feature
specName - the specific name
Returns:
value of the feature

getFeatures

public String[] getFeatures(String name)
Convenient method to obtain a String array features based on the name.

Specified by:
getFeatures in interface SqlRuntimeContext
Parameters:
name - the feature
Returns:
the array of the feature values

isFeature

public boolean isFeature(SqlFeature feature)
Convenient method to obtain a boolean feature based on the name.

Specified by:
isFeature in interface SqlRuntimeContext
Parameters:
feature - the feature
Returns:
value of the feature

getFeatureAsInt

public Integer getFeatureAsInt(SqlFeature feature)
Convenient method to obtain an Integer feature based on the name.

Specified by:
getFeatureAsInt in interface SqlRuntimeContext
Parameters:
feature - the feature
Returns:
value of the feature

getFeatureAsObject

public Object getFeatureAsObject(SqlFeature feature)
Convenient method to obtain an Object feature based on the name.

Specified by:
getFeatureAsObject in interface SqlRuntimeContext
Parameters:
feature - the feature
Returns:
value of the feature

getRawFeature

protected Object getRawFeature(SqlFeature feature)
Convenient method to obtain a feature based on the name.

Parameters:
feature - the feature
Returns:
value of the feature

getRawFeature

protected Object getRawFeature(String name)
Convenient method to obtain a feature based on the name.

Parameters:
name - name of the feature
Returns:
value of the feature

getOrder

List<SqlOrder> getOrder()
Returns the list of ordering directives.

Returns:
the list of ordering directives

getOrderIndex

int getOrderIndex(int orderId)
Convenient method to obtain the index of the ordering directive.

Parameters:
orderId - the order number
Returns:
the index of the ordering directive

getOrder

SqlOrder.Order getOrder(int orderIndex)
Convenient method to obtain the ordering directive based on the index.

Parameters:
orderIndex - the index of the ordering rule
Returns:
the ordering directive

getTypeFactory

public SqlTypeFactory getTypeFactory()
Returns the factory responsible for the META types construction.

Specified by:
getTypeFactory in interface SqlRuntimeContext
Returns:
the factory for the META types construction

getPluginFactory

public SqlPluginFactory getPluginFactory()
Returns the factory responsible for the SQL Processor plugins.

Specified by:
getPluginFactory in interface SqlRuntimeContext
Returns:
the factory for the SQL Processor plugins

getInstance

public Object getInstance(Class<?> clazz)
Returns the new class instance

Specified by:
getInstance in interface SqlRuntimeContext
Parameters:
clazz - the class to be constructed
Returns:
the new class instance. Null in the case of any error.

getAttributeType

public Class<?> getAttributeType(Class<?> clazz,
                                 String attrName)
Returns the Java type info for the attribute, if there is one.

Specified by:
getAttributeType in interface SqlRuntimeContext
Parameters:
clazz - the class for which the attribute type is requested
attrName - the name of the attribute which type is requested
Returns:
the object that represents the Java type info. Null in the case there's no such attribute.

getGetterType

public BeanUtilsPlugin.GetterType getGetterType(Class<?> clazz,
                                                String attrName)
Returns the attribute getter method types, if there is one.

Specified by:
getGetterType in interface SqlRuntimeContext
Parameters:
clazz - the class for which the getter is requested
attrName - the name of the attribute which getter is requested
Returns:
The method that should be used to read the property value. Null in the case there's no such attribute's getter.

getGetterType

public BeanUtilsPlugin.GetterType getGetterType(Object bean,
                                                String attrName)
Returns the attribute getter method types, if there is one.

Specified by:
getGetterType in interface SqlRuntimeContext
Parameters:
bean - the bean for which the getter is requested
attrName - the name of the attribute which getter is requested
Returns:
The getter method types that should be used to read the property value. Null in the case there's no such attribute's getter.

checkAttribute

public boolean checkAttribute(Object bean,
                              String attrName)
Checks the attribute getter method existence.

Specified by:
checkAttribute in interface SqlRuntimeContext
Parameters:
bean - the bean for which the getter is checked
attrName - the name of the attribute which getter is checked
Returns:
True if there's the attribute getter method

getAttribute

public Object getAttribute(Object bean,
                           String attrName)
Returns the value of the specified simple attribute of the specified bean.

Specified by:
getAttribute in interface SqlRuntimeContext
Parameters:
bean - the bean for which the attribute value is requested
attrName - the name of the attribute which value is requested
Returns:
the attribute value

simpleSetAttribute

public boolean simpleSetAttribute(Object bean,
                                  String attrName,
                                  Object attrValue,
                                  Class<?>... attrTypes)
Sets the value of the specified simple attribute of the specified bean, if there is one.

Specified by:
simpleSetAttribute in interface SqlRuntimeContext
Parameters:
bean - the bean for which the attribute value is to be modified
attrName - the name of the attribute to be modified
attrValue - the value to which the attribute should be set
attrTypes - the possible attribute types
Returns:
True if the attribute was successfully modified

setAttribute

public void setAttribute(Object bean,
                         String attrName,
                         Object attrValue)
Sets the value of the specified simple attribute of the specified bean.

Specified by:
setAttribute in interface SqlRuntimeContext
Parameters:
bean - the bean for which the attribute value is to be modified
attrName - the name of the attribute to be modified
attrValue - the value to which the attribute should be set

checkMethod

public boolean checkMethod(Class<?> clazz,
                           String methodName,
                           Class<?>... args)
Checks the class method existence.

Specified by:
checkMethod in interface SqlRuntimeContext
Parameters:
clazz - the class for which the method existence is checked
methodName - the name of the method to be checked
args - the method parameters types
Returns:
True if there's such a method

checkMethod

public boolean checkMethod(Object bean,
                           String methodName,
                           Object... args)
Checks the bean method existence.

Specified by:
checkMethod in interface SqlRuntimeContext
Parameters:
bean - the bean for which the method existence is checked
methodName - the name of the method to be checked
args - the method parameters
Returns:
True if there's such a method

invokeMethod

public Object invokeMethod(Class<?> clazz,
                           String methodName,
                           Object... args)
Invokes the class method with the specified name and parameters. The method can be a static one.

Specified by:
invokeMethod in interface SqlRuntimeContext
Parameters:
clazz - the class which method is going to be invoked
methodName - the requested method name
args - the method parameters
Returns:
the result of the method invocation

invokeMethod

public Object invokeMethod(Object bean,
                           String methodName,
                           Object... args)
Invokes the bean method with the specified name and parameters.

Specified by:
invokeMethod in interface SqlRuntimeContext
Parameters:
bean - the bean which method is going to be invoked
methodName - the requested method name
args - the method parameters
Returns:
the result of the method invocation

getEnumToValue

public Object getEnumToValue(Object bean)
Returns the bean enumeration value.

Specified by:
getEnumToValue in interface SqlRuntimeContext
Parameters:
bean - the bean of the enumeration type
Returns:
the enumeration value. Null in the case of any error.

getEnumToClass

public Class<?> getEnumToClass(Class<?> clazz)
Returns the bean enumeration type.

Specified by:
getEnumToClass in interface SqlRuntimeContext
Parameters:
clazz - the class of the enumeration type
Returns:
the enumeration type. Null in the case of any error.

getValueToEnum

public Object getValueToEnum(Class<?> objClass,
                             Object val)
Returns the enumeration instance for the enumeration value

Specified by:
getValueToEnum in interface SqlRuntimeContext
Parameters:
objClass - the class of the enumeration type
val - the enumeration value
Returns:
the enumeration instance. Null in the case of any error.

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.