Package org.sqlproc.engine.impl
Class SqlProcessContext
java.lang.Object
org.sqlproc.engine.impl.SqlProcessContext
- All Implemented Interfaces:
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
FieldsModifier and TypeFieldDescriptionprivate Object
The SQL statement dynamic parameters.Unset features in the runtime.private SqlControl
The compound parameters controlling the META SQL execution.private SqlEngine
The primary SQL Processor class for the META SQL execution.private SqlMetaSqlFragment.Type
The type of the META SQL fragment.private SqlMetaStatement.Type
The SQL command type. -
Constructor Summary
ConstructorsConstructorDescriptionSqlProcessContext
(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
Modifier and TypeMethodDescriptionboolean
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.getAttribute
(Object bean, String attrName) Returns the value of the specified simple attribute of the specified bean.Class<?>[]
getAttributeParameterizedTypes
(Class<?> clazz, String attrName) Returns the Java parameterized type info for the attribute, if there is one.Class
<?> getAttributeType
(Class<?> clazz, String attrName) Returns the Java type info for the attribute, if there is one.Returns the SQL statement dynamic parameters.Class
<?> getEnumToClass
(Class<?> clazz) Returns the bean enumeration type.getEnumToValue
(Object bean) Returns the bean enumeration value.getFeature
(String name) Convenient method to obtain a String feature based on the name.getFeature
(SqlFeature feature) Convenient method to obtain a String feature based on the name.getFeature
(SqlFeature feature, String specName) Convenient method to obtain a String feature based on the name.getFeatureAsInt
(SqlFeature feature) Convenient method to obtain an Integer feature based on the name.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.getGetterType
(Class<?> clazz, String attrName) Returns the attribute getter method types, if there is one.getGetterType
(Object bean, String attrName) Returns the attribute getter method types, if there is one.getInstance
(Class<?> clazz) Returns the new class instanceReturns the compound parameters controlling the META SQL execution.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
(String orderId) Convenient method to obtain the index of the ordering directive.Returns the factory responsible for the SQL Processor plugins.protected Object
getRawFeature
(String name) Convenient method to obtain a feature based on the name.protected Object
getRawFeature
(SqlFeature feature) Convenient method to obtain a feature based on the name.(package private) SqlMetaStatement.Type
Returns the SQL command type.Returns the SQL statement static parameters.Returns the factory responsible for the META types construction.getValueToEnum
(Class<?> objClass, Object val) Returns the enumeration instance for the enumeration valueprivate void
Initialize the optional features.invokeMethod
(Class<?> clazz, String methodName, Object... args) Invokes the class method with the specified name and parameters.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.boolean
Returns the indicator the SET or VALUES fragment of META SQL is in processvoid
setAttribute
(Object bean, String attrName, Object attrValue) Sets the value of the specified simple attribute of the specified bean.void
setSqlFragmentType
(SqlMetaSqlFragment.Type sqlFragmentType) Sets the type of the META SQL fragment.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.toString()
For debug purposes.
-
Field Details
-
sqlStatementType
The SQL command type. -
dynamicInputValues
The SQL statement dynamic parameters. -
sqlControl
The compound parameters controlling the META SQL execution. -
sqlEngine
The primary SQL Processor class for the META SQL execution. -
sqlFragmentType
The type of the META SQL fragment. -
oppositeNames
Unset features in the runtime.
-
-
Constructor Details
-
SqlProcessContext
SqlProcessContext(SqlMetaStatement.Type sqlStatementType, Object dynamicInputValues, SqlControl sqlControl, SqlEngine sqlEngine) Creates a new instance.- Parameters:
sqlStatementType
- the type of the SQL commanddynamicInputValues
- the dynamic input parameterssqlControl
- the compound parameters controlling the META SQL executionsqlEngine
- 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 processingdynamicInputValues
- the dynamic input parameterssqlControl
- the compound parameters controlling the META SQL execution
-
-
Method Details
-
initFeatures
private void initFeatures()Initialize the optional features. -
getSqlStatementType
SqlMetaStatement.Type getSqlStatementType()Returns the SQL command type.- Returns:
- the SQL command type
-
getDynamicInputValues
Returns the SQL statement dynamic parameters.- Returns:
- the SQL statement dynamic parameters
-
getStaticInputValues
Returns the SQL statement static parameters.- Returns:
- the SQL statement static parameters
-
getMoreResultClasses
Returns the compound parameters controlling the META SQL execution.- Returns:
- the compound parameters controlling the META SQL execution
-
setSqlFragmentType
Sets the type of the META SQL fragment.- Parameters:
sqlFragmentType
- the type of the META SQL fragment
-
isInSetOrInsert
public boolean isInSetOrInsert()Returns the indicator the SET or VALUES fragment of META SQL is in process- Returns:
- the indicator the SET or VALUES fragment of META SQL is in process
-
getFeature
Convenient method to obtain a String feature based on the name.- Specified by:
getFeature
in interfaceSqlRuntimeContext
- Parameters:
name
- name of the feature- Returns:
- value of the feature
-
getFeature
Convenient method to obtain a String feature based on the name.- Specified by:
getFeature
in interfaceSqlRuntimeContext
- Parameters:
feature
- the feature- Returns:
- value of the feature
-
getFeature
Convenient method to obtain a String feature based on the name.- Specified by:
getFeature
in interfaceSqlRuntimeContext
- Parameters:
feature
- the featurespecName
- the specific name- Returns:
- value of the feature
-
getFeatures
Convenient method to obtain a String array features based on the name.- Specified by:
getFeatures
in interfaceSqlRuntimeContext
- Parameters:
name
- the feature- Returns:
- the array of the feature values
-
isFeature
Convenient method to obtain a boolean feature based on the name.- Specified by:
isFeature
in interfaceSqlRuntimeContext
- Parameters:
feature
- the feature- Returns:
- value of the feature
-
getFeatureAsInt
Convenient method to obtain an Integer feature based on the name.- Specified by:
getFeatureAsInt
in interfaceSqlRuntimeContext
- Parameters:
feature
- the feature- Returns:
- value of the feature
-
getFeatureAsObject
Convenient method to obtain an Object feature based on the name.- Specified by:
getFeatureAsObject
in interfaceSqlRuntimeContext
- Parameters:
feature
- the feature- Returns:
- value of the feature
-
getRawFeature
Convenient method to obtain a feature based on the name.- Parameters:
feature
- the feature- Returns:
- value of the feature
-
getRawFeature
Convenient method to obtain a feature based on the name.- Parameters:
name
- name of the feature- Returns:
- value of the feature
-
getOrder
Returns the list of ordering directives.- Returns:
- the list of ordering directives
-
getOrderIndex
Convenient method to obtain the index of the ordering directive.- Parameters:
orderId
- the order number- Returns:
- the index of the ordering directive
-
getOrder
Convenient method to obtain the ordering directive based on the index.- Parameters:
orderIndex
- the index of the ordering rule- Returns:
- the ordering directive
-
getTypeFactory
Returns the factory responsible for the META types construction.- Specified by:
getTypeFactory
in interfaceSqlRuntimeContext
- Returns:
- the factory for the META types construction
-
getPluginFactory
Returns the factory responsible for the SQL Processor plugins.- Specified by:
getPluginFactory
in interfaceSqlRuntimeContext
- Returns:
- the factory for the SQL Processor plugins
-
getInstance
Returns the new class instance- Specified by:
getInstance
in interfaceSqlRuntimeContext
- Parameters:
clazz
- the class to be constructed- Returns:
- the new class instance. Null in the case of any error.
-
getAttributeType
Returns the Java type info for the attribute, if there is one.- Specified by:
getAttributeType
in interfaceSqlRuntimeContext
- Parameters:
clazz
- the class for which the attribute type is requestedattrName
- 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.
-
getAttributeParameterizedTypes
Returns the Java parameterized type info for the attribute, if there is one.- Specified by:
getAttributeParameterizedTypes
in interfaceSqlRuntimeContext
- Parameters:
clazz
- the class for which the attribute type is requestedattrName
- the name of the attribute which type is requested- Returns:
- the object that represents the Java parameterized type info. Null in the case there's no such attribute.
-
getGetterType
Returns the attribute getter method types, if there is one.- Specified by:
getGetterType
in interfaceSqlRuntimeContext
- Parameters:
clazz
- the class for which the getter is requestedattrName
- 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
Returns the attribute getter method types, if there is one.- Specified by:
getGetterType
in interfaceSqlRuntimeContext
- Parameters:
bean
- the bean for which the getter is requestedattrName
- 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
Checks the attribute getter method existence.- Specified by:
checkAttribute
in interfaceSqlRuntimeContext
- Parameters:
bean
- the bean for which the getter is checkedattrName
- the name of the attribute which getter is checked- Returns:
- True if there's the attribute getter method
-
getAttribute
Returns the value of the specified simple attribute of the specified bean.- Specified by:
getAttribute
in interfaceSqlRuntimeContext
- Parameters:
bean
- the bean for which the attribute value is requestedattrName
- 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 interfaceSqlRuntimeContext
- Parameters:
bean
- the bean for which the attribute value is to be modifiedattrName
- the name of the attribute to be modifiedattrValue
- the value to which the attribute should be setattrTypes
- the possible attribute types- Returns:
- True if the attribute was successfully modified
-
setAttribute
Sets the value of the specified simple attribute of the specified bean.- Specified by:
setAttribute
in interfaceSqlRuntimeContext
- Parameters:
bean
- the bean for which the attribute value is to be modifiedattrName
- the name of the attribute to be modifiedattrValue
- the value to which the attribute should be set
-
checkMethod
Checks the class method existence.- Specified by:
checkMethod
in interfaceSqlRuntimeContext
- Parameters:
clazz
- the class for which the method existence is checkedmethodName
- the name of the method to be checkedargs
- the method parameters types- Returns:
- True if there's such a method
-
checkMethod
Checks the bean method existence.- Specified by:
checkMethod
in interfaceSqlRuntimeContext
- Parameters:
bean
- the bean for which the method existence is checkedmethodName
- the name of the method to be checkedargs
- the method parameters- Returns:
- True if there's such a method
-
invokeMethod
Invokes the class method with the specified name and parameters. The method can be a static one.- Specified by:
invokeMethod
in interfaceSqlRuntimeContext
- Parameters:
clazz
- the class which method is going to be invokedmethodName
- the requested method nameargs
- the method parameters- Returns:
- the result of the method invocation
-
invokeMethod
Invokes the bean method with the specified name and parameters.- Specified by:
invokeMethod
in interfaceSqlRuntimeContext
- Parameters:
bean
- the bean which method is going to be invokedmethodName
- the requested method nameargs
- the method parameters- Returns:
- the result of the method invocation
-
getEnumToValue
Returns the bean enumeration value.- Specified by:
getEnumToValue
in interfaceSqlRuntimeContext
- Parameters:
bean
- the bean of the enumeration type- Returns:
- the enumeration value. Null in the case of any error.
-
getEnumToClass
Returns the bean enumeration type.- Specified by:
getEnumToClass
in interfaceSqlRuntimeContext
- Parameters:
clazz
- the class of the enumeration type- Returns:
- the enumeration type. Null in the case of any error.
-
getValueToEnum
Returns the enumeration instance for the enumeration value- Specified by:
getValueToEnum
in interfaceSqlRuntimeContext
- Parameters:
objClass
- the class of the enumeration typeval
- the enumeration value- Returns:
- the enumeration instance. Null in the case of any error.
-
toString
For debug purposes.
-