Class ParamNameResolver


  • public class ParamNameResolver
    extends java.lang.Object
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String GENERIC_NAME_PREFIX  
      private boolean hasParamAnnotation  
      private java.util.SortedMap<java.lang.Integer,​java.lang.String> names
      The key is the index and the value is the name of the parameter.
      The name is obtained from Param if specified.
      private boolean useActualParamName  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private java.lang.String getActualParamName​(java.lang.reflect.Method method, int paramIndex)  
      java.lang.Object getNamedParams​(java.lang.Object[] args)
      A single non-special parameter is returned without a name.
      java.lang.String[] getNames()
      Returns parameter names referenced by SQL providers.
      private static boolean isSpecialParameter​(java.lang.Class<?> clazz)  
      static java.lang.Object wrapToMapIfCollection​(java.lang.Object object, java.lang.String actualParamName)
      Wrap to a MapperMethod.ParamMap if object is Collection or array.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • GENERIC_NAME_PREFIX

        public static final java.lang.String GENERIC_NAME_PREFIX
        See Also:
        Constant Field Values
      • useActualParamName

        private final boolean useActualParamName
      • names

        private final java.util.SortedMap<java.lang.Integer,​java.lang.String> names

        The key is the index and the value is the name of the parameter.
        The name is obtained from Param if specified. When Param is not specified, the parameter index is used. Note that this index could be different from the actual index when the method has special parameters (i.e. RowBounds or ResultHandler).

        • aMethod(@Param("M") int a, @Param("N") int b) -> {{0, "M"}, {1, "N"}}
        • aMethod(int a, int b) -> {{0, "0"}, {1, "1"}}
        • aMethod(int a, RowBounds rb, int b) -> {{0, "0"}, {2, "1"}}
      • hasParamAnnotation

        private boolean hasParamAnnotation
    • Constructor Detail

      • ParamNameResolver

        public ParamNameResolver​(Configuration config,
                                 java.lang.reflect.Method method)
    • Method Detail

      • getActualParamName

        private java.lang.String getActualParamName​(java.lang.reflect.Method method,
                                                    int paramIndex)
      • isSpecialParameter

        private static boolean isSpecialParameter​(java.lang.Class<?> clazz)
      • getNames

        public java.lang.String[] getNames()
        Returns parameter names referenced by SQL providers.
        Returns:
        the names
      • getNamedParams

        public java.lang.Object getNamedParams​(java.lang.Object[] args)

        A single non-special parameter is returned without a name. Multiple parameters are named using the naming rule. In addition to the default names, this method also adds the generic names (param1, param2, ...).

        Parameters:
        args - the args
        Returns:
        the named params
      • wrapToMapIfCollection

        public static java.lang.Object wrapToMapIfCollection​(java.lang.Object object,
                                                             java.lang.String actualParamName)
        Wrap to a MapperMethod.ParamMap if object is Collection or array.
        Parameters:
        object - a parameter object
        actualParamName - an actual parameter name (If specify a name, set an object to MapperMethod.ParamMap with specified name)
        Returns:
        a MapperMethod.ParamMap
        Since:
        3.5.5