Class SqlProcessContext

    • Field Detail

      • dynamicInputValues

        private Object dynamicInputValues
        The SQL statement dynamic parameters.
      • sqlControl

        private SqlControl sqlControl
        The compound parameters controlling the META SQL execution.
      • sqlEngine

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

        private 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
      • getMoreResultClasses

        public Map<String,​Class<?>> getMoreResultClasses()
        Returns the compound parameters controlling the META SQL execution.
        Returns:
        the compound parameters controlling the META SQL execution
      • setSqlFragmentType

        public void setSqlFragmentType​(SqlMetaSqlFragment.Type sqlFragmentType)
        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

        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​(String 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
      • 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.
      • getAttributeParameterizedTypes

        public Class<?>[] getAttributeParameterizedTypes​(Class<?> clazz,
                                                         String attrName)
        Returns the Java parameterized type info for the attribute, if there is one.
        Specified by:
        getAttributeParameterizedTypes 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 parameterized 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